Speichern in einer externen Textdatei
Guten Morgen und schönen Nikolaus :xmas:
Also ich hatte vor geraumer Zeit schon einmal gefragt, wie man eine externe Datei in Delphi einlesen kann, das Problem konnte ich dann mit eurer Hilfe beheben. Jetzt aber die andere Seite, dieses Mal möchte ich gern in einer externen Datei speichern. Und zwar hab ich ein TextArray, das gefüllt ist mit Nullen (0) und Einsen (1), also binär, gespeichert werden soll dann ein zweidimensonales Array der Größe [n,n]. Als Beispiel: n-Zeilen = 5 | n-Spalten = 5 01010 00000 11111 11000 00011 Ich würd mich freuen, wenn mir einer einen Quelltext, dafür bzw. einen Ansatz posten könnte. Mit freundlichen Grüssen Daniel Kussin |
Re: Speichern in einer externen Textdatei
Also wenn ich dich recht verstehe, dass möchtest du dein
2D-Array in eine Text-Datei speichern. Ich hab das mit ner StringList und zwei geschachtelten FOR-Schleifen gemacht: (Müsste so gehen. Musst aber noch n1 und n2 ersetzen!)
Delphi-Quellcode:
var 2darray: array [1..n1,1..n2] of char;
StrList := NIL; try SetLenght(str,n1); StrList := TStringList.Create; for i:=1 to n1 do begin for j:=1 to n2 do begin str[j] := 2darray[i,j]; end; StrList.Add(str); end; StrList.SaveToFile('text.txt'); finally StrList.Free; end; |
Re: Speichern in einer externen Textdatei
Ich hab mir den Quellcode jetzt einmal angeguckt, und ihn für mich und mein Problem geändert, aber ich hab da noch einige Verständnisfragen!
Delphi-Quellcode:
Ich hoffe ich hab das so richtig verstanden. Wenn nicht helf mir bitte noch einmal!
procedure ArrayInDatei(var dateiname : tFilename);
const cZeilenZahl = 5; cSpaltenZahl = 5; typen tTextArryay = Array[1..cZeilenZahl,1..cSpaltenZahl] of integer; // Du hattest geschrieben // Char, ich denk aber, dass das keine Rolle spielen sollte! Oder? var TextArray : tTextArray; x, y : integer; Zeile : string; begin StrList := NIL; // Dateiformat (Zeiger) leeren try SetLength(Zeile,cSpaltenZahl); // Definition der neuen Zeile (Format: Länge) StrList := TStringlist.Create; for y := 1 to cZeilenZahl do begin for x := 1 to cSpaltenZahl do Zeile[x] := TextArray[x,y]; // Durch die beiden for-Schleifen wird das TextArray in die // String-Variable "Zeile" gespeichert StrList.Add(Zeile); // Fertige Zeile wird der StrList hinzugefügt end; StrList.SaveToFile(dateiname); // Neue Datei wird gespeichert unter Variable: dateiname finally StrList.Free end; Danke, Daniel |
Re: Speichern in einer externen Textdatei
Einmal muss ich euch noch belästigen, aber ich hab den Quellcode jetzt in mein Programm übernommen, und Delphi meckert, dass er StrList nicht kennt. Kann es sein, dass das kein Delphi-Befehl ist, denn in der Hilfe konnte ich auch nichts finden.
Daniel |
Re: Speichern in einer externen Textdatei
StrList ist eine variable vom Typ TStringList
|
Re: Speichern in einer externen Textdatei
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,
:wink: Wie währe es mit einer Variablendeklaration:
Delphi-Quellcode:
http://www.delphipraxis.net/images/common/divider.jpg
Var StrList: TStringList;
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif |
Re: Speichern in einer externen Textdatei
Es will immer noch nicht so richtig. Ich bekomm jetzt an folgender Zelle folgende Fehlermeldung:
Fehlermeldung: [Fehler] uTextdatei.pas(142): Anweisung erforderlich, aber Ausdruck vom Typ 'Integer' gefunden
Delphi-Quellcode:
Ich würde denken, dass ich doch dem StrList einfach eine Zeile hinzufüg, und ihn nicht anweise, erbitte wieder Hilfe.
procedure DateiSchreiben(dateiname : tFilename);
var TextArray : tTextArray; x, y : integer; Zeile : string; StrList : tStringList; begin ArrayInDatei(dateiname, TextArray); StrList := NIL; try SetLength(Zeile,cAnzSpalten); StrList := TStringlist.Create; for y := 1 to cAnzZeilen do begin for x := 1 to cAnzSpalten do Zeile[x] := chr(TextArray[x,y]); StrList.Add(Zeile); // <-- Hier die Fehlermeldung, wo liegt denn mein Problem. end; StrList.SaveToFile(dateiname); finally StrList.Free; end; end; Daniel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 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