![]() |
Schreiben in *.txt
Hallo alle zusammen, ich hoffe Ihr könnt mir weiterhelfen.
Ich habe folgendes Problem, über folgenden Procedure speichere ich den Inhalt der der Query in der Textdatei.
Delphi-Quellcode:
Nun habe ich das Problem, das ich die Procedure nur 1x aufrufen kann und die Daten in der Textdatei speichern kann. Wenn ich einen anderen Datensatz auswähle, wird der Inhalt nicht überschrieben. Dazu muß ich dann erst die Textdatei von Hand öffnen und wieder schließen.
AssignFile(f, 'SerienTxt.txt');
rewrite(f); Form1.Query1.SQL.Clear; Form1.Query1.SQL.Add('Select * FROM "'+Pfad+'" WHERE Name ='''+DBFirma.Text+''''); Form1.Query1.Active:= True; Form1.Query1.First; for i:= 0 To Form1.Query1.FieldCount-1 Do Write(f, Form1.DBGrid1.Fields[i].Fieldname+'#'); Writeln(f,''); While Not Form1.Query1.Eof DO begin For i:= 0 To Form1.Query1.FieldCount-1 Do Write(F, Form1.Query1.Fields[i].AsString+'#'); if Form1.Query1.FieldCount-1 = Form1.Query1.FieldCount-1 Then Writeln(f,''); Form1.Query1.Next; end; CloseFile (f); Form1.Query1.SQL.Clear; Form1.Query1.SQL.Add('Select * FROM "'+Pfad+'"'); Form1.Query1.Active:= True; Woran liegt das? [edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/delphi] |
Hallo Albi,
bekommst Du eine Fehlemeldung? Wird die Funktion, Procedure vielleicht nur einmal angesprungen? bye |
Hallo Abli,
du musst noch ein Query1.Close hinzufügen, bevor du mit Clear und Add ein neues Statement einfügst. Übrigens würde ich Query1.Open und nicht Query1.Active := True verwenden. |
Ne, das war auch nicht die Lösung. Habe jetzt alles geändert. Hab oben ja was falsches geschrieben, ich muß nicht die Textdatei öffnen und wieder schließen sondern die ganze Anwendung.
Ich benutze diese Procedure für einen Serienbrief. Ich wählen (ersteinmal zum Testen) einen Datensatz aus, der mir dann in das Word Doc eingefügt wird. Zitat:
Ich habe jetzt mal das CloseFile weggenommen, da macht er es, nur wird dann nicht alles in die Textdatei geschrieben. Muß ich noch irgendwas freigeben? Speicher oder so? |
Hallo Albi,
setze doch einfach einen Breakpoint auf das erste Statement der Procedure und trace sie, dann siehst Du doch was passiert. bye PS: Mach mal aus dem CloseFile ein System.CloseFile |
Sorry für die Frage aber wo soll ich das setzten in der Unit? :?:
|
Diese Procedure heißt ExportInTxt, wenn diese in einer Procedure aufrufe müßte das doch so gehen. Ich habe es so gemacht:
Code:
begin
ExportInTxt; WordApplication1.Disconnect; if OpenDialog1.Execute then FileName:=OpenDialog1.FileName |
Hallo Albi,
nein in deinem Quellcode. Cursor in die Zeile Zitat:
bye PS: Das Programm starten nicht vergessen |
Hab ich getan, mir ist da aber nicht aufgefallen. Das heißt ich versteh auch noch nicht soviel von dem ganzen aber jeder fängt ja mal klein an.
Er ist einfach jeden Schritt für Schritt durch Prog gerant und nur bei der Word rumgemeckert, das ihm die Datenquelle fehlt aber daran kann es ja nicht liegen. |
Hi MrSpock,
kurze Zwischenfrage : Zitat:
Code:
zu setzen ? Meinst Du vieleicht für OOP-Zwecke wäre das besser?
Active := true;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 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