Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi txt. Datei in Array einlesen (https://www.delphipraxis.net/67907-txt-datei-array-einlesen.html)

lprade 21. Apr 2006 17:00


txt. Datei in Array einlesen
 
Hallo zusammen,
Ich möchte den Inhalt einer Textdatei in ein Array einlesen, und anschliessend in eine dat. Datei schreiben. Mit einer Zeile funktioniert dass auch schon so:

Delphi-Quellcode:
var m: textfile;
    S: Array[0..10] of char;
    content: char;
    d: File of Char;
    zaehler: byte;
begin
AssignFile(m,'C:\Messier.txt');
Reset(m);
Readln(m,S);
AssignFile(d,'C:\Messier2.dat');
Rewrite(d);
for Zaehler:=0 to 10 do
begin
content:=s[zaehler];
Write(d,content);
end;

end;
Hier lese ich den Inhalt der Textdatei "Messier.txt" im Stammverzeichnis C:/ in das Char-Array "S" ein (Maximale Länge einer Zeile ist hier 10 Zeichen). Anschliessend wird in der folgenden "For" Schleife der Inhalt des Arrays Zeichen für Zeichen wieder in die Variable "Content" ausgelesen (content:=s[Zaehler]) und dann die dat. Datei "d" geschrieben.

Leider funktioniert diese Methode nur für eine Zeile. Wenn eine Textdatei mehrere Zeilen hat, kann ich nicht auf die einzelnen Zeilen zugreifen, da es meines Wissens nach keinen Datenzeiger für Textdateien gibt. Habe auch versucht ein zweidimensionales Array zu benutzen, aber in den kann ich den Inhalt der .txt Datei nicht einlesen. Hätte jemand von euch einen Vorschlag? Villeicht auch ohne den Umweg über das Array?
Vielen Dank an alle
Ludwig

mkinzler 21. Apr 2006 17:02

Re: txt. Datei in Array einlesen
 
Was ist der Sinn deines Programmes?

lprade 21. Apr 2006 17:24

Re: txt. Datei in Array einlesen
 
Ich möchte damit eine Datenbank (für ein astronomische Programm) erstellen. Sinn des ganzen ist es, dass das Program sich das gewünschte Himmelsobjekt via Datenzeiger in der .dat suchen kann. Wenn ich zum Beispiel Stern Nr. 7 Suche kann ich ihn mit:


Delphi-Quellcode:
Sucher:=strtoint(label1.caption); //Hier gebe ich das gesuchten Stern, also 7 ein
Seek(s,Sucher);
Read(s,Ausgabe); //Womit ich jetzt die Daten weiterverarbeiten kann, die unter "s,7" gespeichert waren.
Gruss
Ludwig

Hawkeye219 21. Apr 2006 17:40

Re: txt. Datei in Array einlesen
 
Hallo Ludwig,

schaue Dir doch einmal in der Delphi-Hilfe die Klasse Delphi-Referenz durchsuchenTStringList an. Diese besitzt eine Methode LoadFromFile und erlaubt einen direkten Zugriff auf einzelne Elemente der Liste.

Gruß Hawkeye

Mackhack 21. Apr 2006 17:41

Re: txt. Datei in Array einlesen
 
In einem Label kannst aber nix eingeben... Nimm stattdessen ein TEdit-Feld.

lprade 21. Apr 2006 17:49

Re: txt. Datei in Array einlesen
 
@ Mackhack
klar, hast recht, war nur ein Leichtsinnsfehler von mir.
@Hawkeye
Danke für den Tipp, kann ich damit auch auf einzelene Zeilen in einer Textdatei zugreifen?
Gruss, Ludwig

mkinzler 21. Apr 2006 17:51

Re: txt. Datei in Array einlesen
 
Auf die einzelnen Zeilen kannst du nach dem Laden per Index zugreifen.

Flare 21. Apr 2006 17:55

Re: txt. Datei in Array einlesen
 
Wenn das ganze eine "Datenbank" werden soll, warum nimmst du nicht einfach Hier im Forum suchenTIniFile?
Dort wird das ganze schon strukturiert und ist auch einfach mit Funktionen ausles- und schreibbar.


Flare

himitsu 21. Apr 2006 18:44

Re: txt. Datei in Array einlesen
 
Wenn du aber unbedingt den Dateinzeiger in einer Textdatei setzen willst, dann kann ich dir meine Erweiterung empfehlen, damit ist sowas "inoffiziell" möglich ._.

64-Bit für TextFile / File of xxx


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 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