Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Speichern in einer externen Textdatei (https://www.delphipraxis.net/12908-speichern-einer-externen-textdatei.html)

danielkussin 6. Dez 2003 11:36


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

H4ndy 6. Dez 2003 11:51

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;

danielkussin 6. Dez 2003 12:46

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:
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;
Ich hoffe ich hab das so richtig verstanden. Wenn nicht helf mir bitte noch einmal!

Danke, Daniel

danielkussin 6. Dez 2003 13:12

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

MrKnogge 6. Dez 2003 13:17

Re: Speichern in einer externen Textdatei
 
StrList ist eine variable vom Typ TStringList

himitsu 6. Dez 2003 13:19

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:
Var StrList: TStringList;
http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

danielkussin 6. Dez 2003 13:42

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:
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;
Ich würde denken, dass ich doch dem StrList einfach eine Zeile hinzufüg, und ihn nicht anweise, erbitte wieder Hilfe.

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