![]() |
Aus Datei auslesen
Ich möchte den Inhalt einer Datei in ner Variable speichern. Wie geht das? Krieg das irgendwie nicht so richtig hin.
|
Re: Aus Datei auslesen
Guck dir mal typisierte Dateien an. Da musst du natürlich wissen welche Stuktur die Datei hat um die Daten darin sinnvoll weiter zu verwenden. Wenn du Dir nich sicher bist kannst du die Datei auch in eine Variable vom Typ Textfile oder sie Zeilenweise in eine Stinglist einlesen. Es kommt halt immer darauf an was du mit den Daten machen willst.
|
Re: Aus Datei auslesen
In der Datei(.txt) steht nur ein einziges Wort und das ist ein Name eines Registryeintrages, den brauch ich dann später für die Registry.
|
Re: Aus Datei auslesen
Welches Verfahren am sinnvollsten ist, hängt doch sehr von der Art der Datei an und davon, was Du damit machen willst:
1. Einfache Textdatei zur Anzeige:
Delphi-Quellcode:
2. Einfache Textdatei zur internen Bearbeitung:
Memo1.Lines.LoadFromFile(sDateiname);
Delphi-Quellcode:
3. Formatierte Textdatei:
StringList1.LoadFromFile(sDateiname);
Delphi-Quellcode:
4. Binäre Datei:
RichEdit2.PlainText := False;
RichEdit2.Lines.LoadFromFile(Path);
Delphi-Quellcode:
Also denke bitte nochmals genauer nach und teile uns das auch mit, was Du willst... Jürgen
FileStream1 := TFileStream.Create(sDateiname, fmOpenRead);
FileStream1.Read( aBuffer, 128 ); Nachtrag: Zitat:
Delphi-Quellcode:
s0 := StringList1[0];
// oder s0 := StringList1.Text; |
Re: Aus Datei auslesen
INI- und XML-Dateien sind oft auch ganz praktisch. ;)
Grüße Faux |
Re: Aus Datei auslesen
Hallo kaschte,
oder so...
Delphi-Quellcode:
Edit: reset-Position korrigiert.
var Datei:Textfile;
Zeile:string; begin assignfile(Datei, 'Datei.txt'); reset(Datei); try while not Eof(Datei) do begin readln(Datei, Zeile); // hier kann man nun die einzelnen Zeilen weiterverarbeiten end; finally closefile(Datei); end; end; Gruss Thorsten |
Re: Aus Datei auslesen
Hallo,
eine kleine Korrektur: der Reset-Befehl sollte aus der TRY-Anweisung herausgenommen werden, damit im Fehlerfall nicht versucht wird, eine nicht offene Datei zu schließen. Gruß Hawkeye |
Re: Aus Datei auslesen
Wieso das?
Ein assignfile funktioniert immer und erzeugt ein Handle. closefile gibt dieses Handle wieder frei. Die erste Zeile in der ein Fehler entstehen kann ist die Zeile in der reset(Datei); steht. Also ist diese Vorgehensweise genau richtig, weil sonst ein Fehler beim Öffnen verhindern würde das das Handle wieder freigegeben wird. Verwunderte Grüsse Thorsten |
Re: Aus Datei auslesen
Hallo Thorsten,
AssignFile funktioniert immer, soweit ist alles richtig. Das Handle wird aber erst durch ein erfolgreiches Reset/Rewrite/Append zugewiesen. Nur im Erfolgsfall muß also dieses Handle durch CloseFile wieder freigegeben werden. Verbleibt das Reset in der TRY-Anweisung, werden im Fehlerfall zwei Meldungen ausgegeben. Die erste erscheint bei Reset (z.B. "Datei nicht gefunden"), die zweite bei CloseFile ("Datei nicht geöffnet"). Gruß Hawkeye |
Re: Aus Datei auslesen
Hallo Hawkeye219,
du hast recht. Allerdings kommen die beiden Fehlermeldungen nur wenn man per einzel Schritt durch die Zeilen geht, ausgegeben wird nur eine. Habe mir das mit MemProof nochmal angesehen und bei deiner Variante bleiben weniger Problemsituationen über als bei meiner. Na gut, also das reset ausserhalb des try-finally-Blocks, sieht zwar hässlich aus aber nun gut. Gruss Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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