![]() |
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:
Ich habe auch schon gegoogelt bis zum schwarz werden aber gefunden habe ich nichts was mir weiterhilft.
Nr name Vorname
1 Test1 Test2 ... ... ... 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; |
Schonmal
Code:
probiert?
DBGrid1.Columns.SaveToFile('Strings.txt');
|
Ja, das habe ich schon aber da kommt nichts weiter dabei raus, als da ich die Spaltenname speichere.
Das sieht so aus.
Delphi-Quellcode:
Das hatte ich auch, nur sollten darunter dann auch noch die Einträge stehen.
DB_Vorname Title.Caption VornameVisible Expanded FieldName DB_Name Title.Caption NameVisible Expanded FieldName DB_Zusatz Title.Caption ZusatzVisible Expanded FieldName
|
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 !
|
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. |
hallo albi!
lass das DBGrid. es dient ja nur zum anzeigen der datensätze wie wärs zb mit
Delphi-Quellcode:
statt 'table' kannst auch 'query' einsetzen...
while not table.eof do begin
eintrag:= table.fieldbyname('feldname').asString; usw.... table.next end; und schon hast zugriff auf alle gefilterten datensätze deine tabelle(n) mfg, stefan |
Und wie speichere ich das dann in der Txt? Einfach über Tabel/Query SaveToFile?
Ich versteh nur noch Bahnhof. :?: |
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 |
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: |
Hab es hinbekommen.
Code:
So sieht der Code aus und es funktioniert wunderbar, so wie ich es mir vorgestellt habe.
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 Danke Mfg Micha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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 by Thomas Breitkreuz