![]() |
TStringGrid -> Listen speichern
Hi :)
Ich habe ein TStringGris (passender weise "Tabelle" genannt ;) ) in der - wer hätts gedacht - Daten stehen. Diese Daten will ich nun speichern, als eine Art csv-Datei (aber vorerst mal mit der Endung *.txt); Ich habe natürlich Dateiname, Seperator und das StringGrid: Das alles wird der Funktion übergeben. Ich stelle mir jetzt die Frage, wie ich das speichern soll. Ich hätte es vielleicht so gemacht: SaveToFile von Rows hilft mir nich viel, da ich es so brauche: Zitat:
Ich dachte mir so etwas: Jede Reihe durchschleifen und von der Reihe jede Spalte zu einem String hinzufügen und diesen String per Writeln (:?:) schreiben air |
Re: TStringGrid -> Listen speichern
Ja, dann mache es doch so. Wie denn sonst ? :shock:
Delphi-Quellcode:
Allerdings empfehle ich dir feste Feldlängen und nicht ein Trennzeichen. Das macht nur Ärger und bringt keinen Vorteil. Zumindest im professionellen Einsatz werden Trennzeichen mittlerweile äußerst selten verwendet, wenn überhaupt.
var d : textfile;
assign (d.'TEST.TXT'); rewrite (d); writeln (d,Data1,';',Data2.....); close (d); |
Re: TStringGrid -> Listen speichern
Zitat:
Edit2: ups, war meienrseits |
Re: TStringGrid -> Listen speichern
such mal nach explode und implode hier im forum!
|
Re: TStringGrid -> Listen speichern
Ok, es funktioniert nun :)
Ich hängs trotzdem mal mit an:
Delphi-Quellcode:
Fields ist ein array of string, darin werden die Namen der Felder festgelegt (da ich diese später ändern muss)
procedure TForm1.SaveSG(FN: TFileName; FieldSeperator: Char; SG: TStringGrid);
var i,j: integer; // Zähler PFile: textfile; // Datei str: string; // Einzutragender string begin AssignFile(PFile, FN); Rewrite(PFile); // Öffnen // Jetzt wird jede Zeile und jedes Feld durchgeschliffen for i:=1 to SG.RowCount do begin for j:=0 to high(Fields) do begin if j <> 0 then str := str + ';' + SG.Cells[j,i] else str := SG.Cells[j,i]; end; str := str + ';'; if SG.Cells[0,i] <> '' then begin Writeln(PFile, str); end; end; CloseFile(PFile); end; air |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 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