Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid in txt speichern (https://www.delphipraxis.net/5577-dbgrid-txt-speichern.html)

Albi 11. Jun 2003 19:57


DBGrid in txt speichern
 
Und wieder einmal ein kleines Problem.

Ich will die sich in einer DBGrid (gefiltert) befindlichen Zeilen in eine *.txt abspeichern, so das ich im Anschluß daran, aus diesen gefilterten Zeilen einen Serienbrief erstellen kann.

Ich habe es es bis jetzt nur hinbekommen, das er mir einen Datensatz 14x (=Anzahl der Spalten) hintereinander abspeichert. Ich habe aber schon gesehen das es auch so aussehen kann:

Delphi-Quellcode:
Nr  name   Vorname
1    Test1   Test2
... ...    ...
Ich habe auch schon gegoogelt bis zum schwarz werden aber gefunden habe ich nichts was mir weiterhilft.

Versucht habe ich es mit dem folgendem Quelltext

Code:
ar
x,y :integer;
list : TStringlist;
begin
list := TStringlist.Create;
for x:=0 to DBGrid1.Columns.Count-1 do
begin
   for y:= 0 to DBGrid1.SelectedRows.Count-1 do
   begin
   list.Add(Form1.Query1.Fields.Fields[x]);
   end;
end;
list.SaveToFile('Strings.txt');
list.Free;
end;

Phoenix 11. Jun 2003 20:03

Schonmal
Code:
DBGrid1.Columns.SaveToFile('Strings.txt');
probiert?

Albi 11. Jun 2003 20:14

Ja, das habe ich schon aber da kommt nichts weiter dabei raus, als da ich die Spaltenname speichere.

Das sieht so aus.

Delphi-Quellcode:
DB_Vorname Title.Caption VornameVisible      Expanded    FieldName DB_Name Title.Caption NameVisible      Expanded    FieldName    DB_Zusatz Title.Caption ZusatzVisible      Expanded    FieldName
Das hatte ich auch, nur sollten darunter dann auch noch die Einträge stehen.

JoelH 12. Jun 2003 06:13

hmm,
 
warum machst du dass mit einem DBGrid ? Lad dir den Kram doch in ein Array und speicher dieses als typisierte Datei oder so ab. Du musst auch bedenken dass nicht alle Daten im DBGrid stehen sondern nur die die auch auf dem Bildschirm angezeigt werden, also eventuell unvollständig ist !

Albi 12. Jun 2003 06:41

Genau das ist ja meine Absicht, ich will nur die Daten die im Grid stehen in die txt gespeichert haben. Wie ich oben geschrieben habe, sind die Daten gefiltert.

Des weiteren kenne ich mich mit Delphi noch nicht so gut aus, somit scheint das mir die einfachste Lösung zu sein, da ich mit der typisierte Datei absolut nicht auskenne.

grayfox 13. Jun 2003 17:56

hallo albi!
lass das DBGrid. es dient ja nur zum anzeigen der datensätze
wie wärs zb mit

Delphi-Quellcode:
while not table.eof do begin
  eintrag:= table.fieldbyname('feldname').asString;
   usw....
  table.next
end;
statt 'table' kannst auch 'query' einsetzen...
und schon hast zugriff auf alle gefilterten datensätze deine tabelle(n)

mfg, stefan

Albi 13. Jun 2003 19:37

Und wie speichere ich das dann in der Txt? Einfach über Tabel/Query SaveToFile?

Ich versteh nur noch Bahnhof. :?:

r_kerber 13. Jun 2003 19:46

Nur mal so auf die Schnelle (ungetestet) als Anregung:

Delphi-Quellcode:
var
  F: TextFile;
begin
  AssignFile (F, 'Dateiname');
  Rewrite (F);
  Table1.Open;
  Table1.First;
  repeat
    WriteLn (F, Table1.Fields[1].AsString,',',Table1.Fields[2],',',...)
    Table1.Next;
  until (Table1.EOF);
  Table1.Close;
  CloseFile(F);
end
;

Albi 13. Jun 2003 19:55

Super es klappt, das einzigste was da jetzt noch fehlt, ist das er mir die Spaltentitel mit in die txt Speichert.

Ansonsten erstmal vielen Dank für die schnelle Hilfe. :hello:

Albi 13. Jun 2003 20:22

Hab es hinbekommen.

Code:
var
  F: TextFile;
begin
  AssignFile (F, 'Dateiname');
  Rewrite (F);
  Table1.Open;
  Table1.First;
  Writeln(F, 'Test1,Test2,Test3,Test4,Test5');
  repeat
    WriteLn (F, Table1.Fields[1].AsString,',',Table1.Fields[2],',',...)
    Table1.Next;
  until (Table1.EOF);
  Table1.Close;
  CloseFile(F);
end
So sieht der Code aus und es funktioniert wunderbar, so wie ich es mir vorgestellt habe.

Danke

Mfg

Micha


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz