AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schreiben in *.txt

Ein Thema von Albi · begonnen am 19. Jun 2003 · letzter Beitrag vom 20. Jun 2003
Antwort Antwort
Seite 1 von 2  1 2      
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#1

Schreiben in *.txt

  Alt 19. Jun 2003, 18:56
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:
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;
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.

Woran liegt das?

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/delphi]
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2
  Alt 19. Jun 2003, 19:07
Hallo Albi,
bekommst Du eine Fehlemeldung? Wird die Funktion, Procedure vielleicht nur einmal angesprungen?
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3
  Alt 19. Jun 2003, 19:15
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.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#4
  Alt 19. Jun 2003, 19:34
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:
bekommst Du eine Fehlemeldung? Wird die Funktion, Procedure vielleicht nur einmal angesprungen?
Nein, wenn ich mit einem Button die Procedure aufrufe wird sie doch immer wieder angesprungen oder seh ich das falsch?

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?
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#5
  Alt 19. Jun 2003, 19:57
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
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#6
  Alt 19. Jun 2003, 19:58
Sorry für die Frage aber wo soll ich das setzten in der Unit?
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#7
  Alt 19. Jun 2003, 20:01
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
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#8
  Alt 19. Jun 2003, 20:03
Hallo Albi,
nein in deinem Quellcode. Cursor in die Zeile
Zitat:
AssignFile(f, 'SerienTxt.txt');
dann F5 drücken, Zeile wird rot und mit F7 Zeile für Zeile tracen. Rest kannst Du im Menü "Start" und der Onlinehilfe nachlesen.
bye

PS: Das Programm starten nicht vergessen
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#9
  Alt 19. Jun 2003, 20:12
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.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10
  Alt 19. Jun 2003, 20:44
Hi MrSpock,

kurze Zwischenfrage :

Zitat von MrSpock:
...Übrigens würde ich Query1.Open und nicht Query1.Active := True verwenden...
Meines Wissens macht doch Open nichts anderes, als
Code:
Active := true;
zu setzen ? Meinst Du vieleicht für OOP-Zwecke wäre das besser?
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 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