Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi .dat Datei in TListbox anzeigen und Einträge verändern (https://www.delphipraxis.net/121742-dat-datei-tlistbox-anzeigen-und-eintraege-veraendern.html)

Serpentine 3. Okt 2008 15:16

Datenbank: .dat • Version: kA • Zugriff über: Spiel

.dat Datei in TListbox anzeigen und Einträge verändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe in einem anderen Forum bereits einen Quelcode gefunden, leider in AutoIt.
Es wäre sehr nett wenn mir jemand diesen in Delphi übersetzen würde, also nur die Funktionen zum lesen und schreiben, oder anhand der angehängten Datei eine eigene Prozedur schreibt.
Danke :)

Hier der AutoIt Code:

Code:
#include <GUIConstantsEx.au3>
#Include <String.au3>
#Include <Array.au3>

GUICreate("Blocks", 300, 200)
$list = GUICtrlCreateList("", 10, 10, 130, 180)
$add = GUICtrlCreateButton("Add", 150, 10, 40)
$input = GUICtrlCreateInput("NewBlock", 200, 11, 85, 23)
$delete = GUICtrlCreateButton("Delete from List", 150, 50, 136)
$save = GUICtrlCreateButton("Save", 150, 160, 136)
GUISetState()
read()
Do   
$msg = GUIGetMsg()
   If $msg = $add Then
      $new = GUICtrlRead($input)
      _ArrayAdd($block, $new)
      GUICtrlSetData($list, "")
      For $i=1 To UBound($block)-1
         GUICtrlSetData($list, $block[$i])
      Next
   EndIf
   If $msg = $delete Then
      $selected = GUICtrlRead($list)
      $number = _ArraySearch($block, $selected, 0, 0, 0, 1)
      _ArrayDelete($block, $number)
      GUICtrlSetData($list, "")
      For $i=1 To UBound($block)-1
         GUICtrlSetData($list, $block[$i])
      Next
   EndIf
   If $msg = $save Then
      write()
   EndIf
Until $msg = $GUI_EVENT_CLOSE

Func read()
$file = FileOpen(@ScriptDir&"\Setting\SRChattingBlockingList.dat", 4)
$start = FileRead($file, 4)
$number = Dec(StringTrimLeft(String(FileRead($file, 1)), 2))
$shit = FileRead($file, 3)
Global $block[$number+1]
For $i=1 To $number
   $chars = Dec(StringTrimLeft(String(FileRead($file, 1)), 2))
   $block[$i] = _HexToString(StringTrimLeft(String(FileRead($file, $chars)), 2))
   GUICtrlSetData($list, $block[$i])
Next
FileClose($file)
EndFunc

Func write()
$file = FileOpen(@ScriptDir&"\Setting\SRChattingBlockingList.dat", 18)
FileWrite($file, 0x1)
FileWrite($file, UBound($block)-1)
For $i=1 To UBound($block)-1
   FileWrite($file, BinaryMid("0x"&Hex(StringLen($block[$i])),4,4))
   FileWrite($file, $block[$i])
Next
FileClose($file)
EndFunc

.dat Datei ist angehängt

Serpentine 4. Okt 2008 11:38

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
Weiß hierrauf denn keiner eine Antwort?

freak4fun 4. Okt 2008 15:13

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
.dat-Dateien können ja sonst wie aufgebaut sein. Wenn du den Aufbau kennst hilft dir vielelicht das =dat]hier weiter.

Serpentine 4. Okt 2008 16:01

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
Schönes Tutorial :) hilft mir aber leider nicht weiter, da die Datei einen mir unbekannten Aufbau hat.

freak4fun 4. Okt 2008 16:28

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
Zitat:

Zitat von Serpentine
... da die Datei einen mir unbekannten Aufbau hat.

Dann würde ich mich an den Autor wenden, falls bekannt. ;)

Serpentine 5. Okt 2008 11:20

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
Glaub kaum dass ich von Joymax Co., Ltd. eine Antwort bekomme ^^
Kann jemand den AutoIt Sourcecode in Delphi übersetzen?

freak4fun 5. Okt 2008 11:49

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habs von 'nem Kumpel compelieren lassen.

Änderung:

Code:
If Not FileExists("SRChattingBlockingList.dat") Then
  MsgBox(0, 'Error', '"SRChattingBlockingList.dat" not found.')
  Exit
EndIf
Das heißt: Beide Dateien müssen im gleichem verzeichnis liegen. ;)

Edit: In der Datei stehen geblockte Spieler (Spammbots). Mit der Dateu kann man die Liste bearbeiten. :)

gizzy 5. Okt 2008 19:09

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
Ich würde die Datei mir mal in einem Hexeditor ansehen.
Arbeite mit TFileStream, so kannst du dort Hexadezimale Delimiter einsetzen oder erkennen.

freak4fun 5. Okt 2008 19:15

Re: .dat Datei in TListbox anzeigen und Einträge verändern
 
Crosspost


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz