StringGrid spalte in .txt
Wie in der Überschrift versuche ich eine Spalte vom StringGrid in eine txt zu speicher funzt soweit auch.
Delphi-Quellcode:
Jetzt werden die Einträge aber alle aneinander gehängt. muss ich das Zeile für Zeile machen und wie kann die Doppelte einträge überspringen oder am besten wäre wieder aus der txt löschen??
procedure TForm7.Button1Click(Sender: TObject);
var sSpalte1Text: String; i:integer; Datei :Textfile; begin AssignFile(datei,'c:\Test.txt'); try Rewrite(datei); for i:=1 to (StringGrid1.RowCount - StringGrid1.FixedRows) do begin sSpalte1Text:=(StringGrid1.Cells[1,i]); Write(datei,sSpalte1Text); end; closeFile(datei); except; MessageDlgPos7('Fehler beim speichern',mtInformation,[mbOk],self); end; end; Hoffe mir kann jemand helfen |
Re: StringGrid spalte in .txt
Delphi-Quellcode:
StringGrid.Cols[1].SaveToFile(...);
|
Re: StringGrid spalte in .txt
Na super Danke :oops:
|
Re: StringGrid spalte in .txt
Ich muss doch nochmal Fragen
Jetzt habe ich es soweit geschaft das auch keine Doppelten Einträge mehr da sind
Delphi-Quellcode:
Jetzt darf das Sotierte aber nicht im StringGrid angeziegt werden sondern es soll nur in der TXT sotiert sein??
procedure TForm7.Button1Click(Sender: TObject);
Var sGridL :TStringList; begin sGridL:= tstringlist.Create; sGridL.Sorted:= true; sGridL.Duplicates:= dupIgnore; sGridL.AddStrings(StringGrid1.Cols[2]); StringGrid1.Cols[2]:= sGridL; sGridL.Free; //Stringliste freigeben try StringGrid1.Cols[2].SaveToFile('c:\Test.txt'); except; MessageDlgPos7('Fehler beim speichern',mtInformation,[mbOk],self); end; end; |
Re: StringGrid spalte in .txt
Warum speicherst du nicht gleich die Stringliste?
|
Re: StringGrid spalte in .txt
Stimmt schon erledigt
Aber das Problem habe ich immernoch und wenn ich Neue Daten in die Datei scSpalte schreibe werden die alten daten überschrieben aber die soll nur um die neuen erweitert werden |
Re: StringGrid spalte in .txt
Dann lad die Datei, füge die neuen Daten hinzu und speicher wieder
|
Re: StringGrid spalte in .txt
Dann erzeuge Dir eine temporäre Stringliste die Duplikate ignoriert, hole Dir in diese die Zeilen Deines Grids, und speichere diese Liste.
|
Re: StringGrid spalte in .txt
Dann solltest du die Liste zuerst Laden, Erweitern und wieder Speichern, denn .SaveToFile() überschreibt grundsätzlich.
|
Re: StringGrid spalte in .txt
Aber wenn ich die Liste erst Lade werden die Einträge im StringGrid angezeigt oder verstehe ich da gerade was nicht
|
Re: StringGrid spalte in .txt
Erstelle dir eine temporäre Stringliste (so wie du auch sGridL erstellt hast), lade in diese die Datei, füge die Einträge hinzu und speicher sie.
|
Re: StringGrid spalte in .txt
Also entweder stehe ich auf dem schlauch oder ich raffe es echt net
Wie soll ich die Zweite liste anhängen
Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);
Var sGridL,sGridLTemp :TStringList; begin try sGridL:= TStringList.Create; sGridL.Sorted:= true; sGridL.Duplicates:= dupIgnore; sGridL.AddStrings(StringGrid1.Cols[2]); sGridLTemp:= TStringList.Create; sGridLTemp.Sorted:= true; sGridLTemp.Duplicates:= dupIgnore; sGridLTemp.LoadFromFile('c:\Test.txt'); StringGrid1.Cols[2]:= sGridL; sGridL.SaveToFile('c:\Test.txt'); sGridL.Free; except; MessageDlgPos7('Fehler beim speichern',mtInformation,[mbOk],self); end; end; |
Re: StringGrid spalte in .txt
Delphi-Quellcode:
sGridL:= TStringList.Create;
sGridL.Sorted:= true; sGridL.Duplicates:= dupIgnore; sGridL.LoadFromFile('c:\Test.txt'); sGridL.AddStrings(StringGrid1.Cols[2]); sGridL.SaveToFile('c:\Test.txt'); |
Re: StringGrid spalte in .txt
Oh mann wieder zu Kompliziert gedacht :duck:
Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 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