Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StringGrid spalte in .txt (https://www.delphipraxis.net/111678-stringgrid-spalte-txt.html)

SaFu 7. Apr 2008 18:49


StringGrid spalte in .txt
 
Wie in der Überschrift versuche ich eine Spalte vom StringGrid in eine txt zu speicher funzt soweit auch.
Delphi-Quellcode:
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;
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??

Hoffe mir kann jemand helfen

mkinzler 7. Apr 2008 18:57

Re: StringGrid spalte in .txt
 
Delphi-Quellcode:
StringGrid.Cols[1].SaveToFile(...);

SaFu 7. Apr 2008 19:05

Re: StringGrid spalte in .txt
 
Na super Danke :oops:

SaFu 7. Apr 2008 19:34

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:
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;
Jetzt darf das Sotierte aber nicht im StringGrid angeziegt werden sondern es soll nur in der TXT sotiert sein??

mkinzler 7. Apr 2008 19:36

Re: StringGrid spalte in .txt
 
Warum speicherst du nicht gleich die Stringliste?

SaFu 7. Apr 2008 19:40

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

Fussball-Robby 7. Apr 2008 19:44

Re: StringGrid spalte in .txt
 
Dann lad die Datei, füge die neuen Daten hinzu und speicher wieder

s-off 7. Apr 2008 19:44

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.

mkinzler 7. Apr 2008 19:44

Re: StringGrid spalte in .txt
 
Dann solltest du die Liste zuerst Laden, Erweitern und wieder Speichern, denn .SaveToFile() überschreibt grundsätzlich.

SaFu 7. Apr 2008 19:47

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Seite 1 von 2  1 2      

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