![]() |
Typorisierte Datei wird nicht gelesen
Hi,
Ich lese mit folgenden code eine typorisierte Datei aus:
Delphi-Quellcode:
Leider bleibt der array leer aber in der datei stehen daten, es kommt aber kein fehler was läuft da falsch ?
// TFunktionenArray: array of TFunktion
// TFunktion: record // TFunktionenDatei = File of TFunktion; function FunktionenLesen(FileName: String): TFunktionenArray; var Datei: TFunktionenDatei; i, count: integer; begin AssignFile(Datei, FileName); // Datei zuweisen Reset(Datei); // Datei öffnen count:= FileSize(Datei) div sizeof(TFunktion); setlength(result, count); for i:=0 to count -1 do begin Seek(Datei, i); // Datensatzzeiger an gewünschte Position // bewegen Read(Datei, result[i]); // die aktuellen Werte lesen end; CloseFile(Datei); // Datei schließen end; mfg, Björn |
Re: Typorisierte Datei wird nicht gelesen
lass mal die Deklarationen von
Delphi-Quellcode:
sehen.
// TFunktionenArray: array of TFunktion
// TFunktion: record // TFunktionenDatei = File of TFunktion; Du musst schon ein Bisschen mehr Code rausrücken, damit man Dir helfen kann... |
Re: Typorisierte Datei wird nicht gelesen
Okay also hier sind sie:
Delphi-Quellcode:
type
TFunktion = packed record Name: String[255]; _Unit: String[255]; Deklaration: String[255]; Params: array[1..32] of TParameter; Beschreibung: LongString; Beispiel: LongString; end; type TFunktionenArray = array of TFunktion; TFunktionenDatei = File of TFunktion; |
Re: Typorisierte Datei wird nicht gelesen
Müsste das nicht File of TFunktionenDatei heissen?
Zitat:
Was ist das für ein Typ? Zitat:
|
Re: Typorisierte Datei wird nicht gelesen
Hallo arbuman,
wie rufst du diese Funktion denn auf? |
Re: Typorisierte Datei wird nicht gelesen
[etwas Off-Topic]
Heißt das nicht typisierte Datei anstelle von typorisierte Datei :gruebel: [/etwas Off-Topic] |
Re: Typorisierte Datei wird nicht gelesen
Müsste es nicht vilmehr so heißen:
Delphi-Quellcode:
Seek(Datei, i*Sizeof(TFunktion));
|
Re: Typorisierte Datei wird nicht gelesen
Hallo,
nein, seek(Datei, i) ist korrekt. Eine typisierte Datei kennt die Länge der Datensätze. Aber die Rückgabe eines Arrays, dessen Länge erst in der Procedur ermittelt wird ist schwierig. Arbeite lieber mit einem VAR Parameter für die Rückgabe, dann wir die Längenanpassung auf das übergebenen Array angewendet. |
Re: Typorisierte Datei wird nicht gelesen
Also alle weiteren typen im record sind:
Delphi-Quellcode:
Aufrufen tue ich das ganze mit:
type
LongString = record Len: integer; Content: array[1..1024] of char; // 1 KB end; type TParameter = packed record Pas: String[255]; Doku: String[255]; end;
Delphi-Quellcode:
begin
if opendialog.Execute then begin FunktionenLesen(opendialog.filename, fa); _update; // array einlesen end; end; |
Re: Typorisierte Datei wird nicht gelesen
Ist ja nett, wenn du in der Zwischenzeit deine Funktionen abänderst, aber vielleicht solltest du dann auch den neuen Quellcode zeigen.
(Die Signatur von "FunktionenLesen" ist im ersten Beitrag anders als im letzten und um genau diese ging es Mr. Spock) [OT] @Florian: Wahrscheinlich meint er vaporisierte Dateien, mit denen hab ich auch schon leidliche Erfahrungen :stupid: . [/OT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz