Hi,
@Specialwork: Versteh das nich so richtig. Wie meinst du das mit "binär" abspeichern? Wandelst du irgendwie all deine Daten in integer- Werte um, rechnest sie dann in einen Binären code um und speicherst diesen dann als Text ab oder wie?
Ich mach das mit eigenen Dateitypen meistens so:
Erstmal gucke ich was ich in meinem Programm für einen Datentyp brauche, den ich verwalten muss bzw. welches Format die Daten haben sollten die ich verwalten muss.
Dann deklrarier ich mir einen Typ, z.B. für eine Adressverwaltung:
Delphi-Quellcode:
type
adresstyp = record
name, strasse, ort: string;
hausnr, tel, fax: integer;
end;
Ok, in dem Beispiel sieht man jetz nich wirklich den Sinn von eigenen Typen, weil ich für all diese Daten eigentlich nur Strings brauche, aber so könnte das z.B. aussehen.
Dann kann ich irgendeine Variable deklarieren, die dieesen Typ hat; bei Adressverwaltungen solltes dann aber schon ein Array sein:
adressen: array[0..99] of adresstyp;
Ne Wertezuweisung kann dann so aussehen:
adressen[0].name= 'S - tefano';
So, aber jetz kommt eigentlich ers das für dich eher wesentliche.
Naja, oder auch nicht. Denn den Typ haben wir ja oben schon deklariert, und wir können auch einen Array erzeugen und ihn mit Daten füllen. Diese Daten sind dann schon so "formatiert" wie wir es oben haben wollten.
Wir haben also quasi schon fast ne Datei, aber noch isses nur n Array der diesen Typ hat, den wir noch abspeichern müssen.
Sowas geht dann (so mach ich es jedenfalls) mit Files.
Delphi-Quellcode:
procedure abspeichern;
var
f: file of adresstyp;{die Variable steht im Programm stellvertretend für ne Datei}
i: integer;{Schleifenzähler der gleichzeitig Index im Array angibt}
begin
assignfile(f, 'dateiname.adr'); {der Variable f einen Dateinamen zuweisen}
{$I-} {Compilerschalter, weiß nich mehr warum der sein muss, aber ich bin mir ziemlich sicher dass der muss... :lol: }
reset(f);
if ioresult= 0 then begin {wenn kein Fehleraufgetreten is, dann...}
for i:= 0 to arlength do begin {arlength soll der Index des letzten Eintrags im Array ein}
write(f, adressen[i]); {in der Schleife werden die einzelnen Datensätze des Arrays in die Datei geschrieben, sind ja nur aneinandergereihte Variablen}
end;
closefile(f); {Datei wieder schließen, um anderen Programmen den Zugriff zu ermöglichen}
{$I+}
end;
end;
Hm, irgendwas hab ich bestimmt falsch gemacht, weil lange nich mehr sowas gemacht, aber das is eigentlich alles was du für ein eigenes Dateiformat brauchst.
OK, auslesen solcher Dateien wär ja auch nich schlecht, aber dazu bin ich jetz mittlerweile doch schon zu müüüde...
Hoffe mal dass es überhaupt das war was du wissen wolltest...
Bis dann,
S - tefano