![]() |
E/A Fehler 105
Hi!
Ich will Dateien in ein Worddokument von Delphi aus schreiben, ohne dies in Word expliziet anzeigen zu lassen. Soweit so gut, Datei wird erzeugt, und dann soll mit Writeln hineingeschrieben werden. Nur leider bekomme ich dabei diese unschöne Fehlermeldung.... hier mal mein Quellcode. Hab irgendwie keine Idee mehr was daran falsch sein könnte....
Delphi-Quellcode:
Gruß
with Daten.DSSonstigeBefehle.DataSet do
begin if not fileExists(Pfad+'\Dokumente\RechnungK.csv') then document:= TFileStream.Create(Pfad+'\Dokumente\RechnungK.csv', fmCreate) else begin AssignFile(f, Pfad+'\Dokumente\RechnungK.csv'); Erase(f); document:= TFileStream.Create(Pfad+'\Dokumente\RechnungK.csv', fmCreate); end; //ShowMessage('Datei angelegt!'); Open; First; AssignFile(f, Pfad+'Dokumente\RechnungK.csv'); while (not eof) do begin writeln(Pfad+'Dokumente\RechnungK.csv', FieldByName('Rechnungsnummer').AsString+';'+FieldByName('Anrede').AsString+';'+FieldByName('Name').AsString+';'+FieldByName('Vorname').AsString+';'+FieldByName('Strasse').AsString+';'+FieldByName('Hausnummer').AsString+';'+FieldByName('PLZ').AsString+';'+FieldByName('Ort').AsString+';'+FieldByName('Kundennummer').AsString+'K'+';'+FieldByName('Vermittlungsdatum').AsString+';'+FieldByName('Modul').AsString+';'+FieldByName('Preis').AsString+';'); ShowMessage('Ins Worddokument wurde geschrieben ;)'); with Daten.tVermittlung do begin locate('Id', Daten.QSonstigeBefehle.FieldValues['Rechnungsnummer'], []); Edit; FieldByName('Rechnungsdatum').AsDateTime:=Date; FieldByName('Rechnung').AsBoolean := true; ShowMessage('Das Rechnungsdatum steht jetzt auch schon in der Vermittlung...'); post; prior; end; next; end; CloseFile(f); end; document.Free; Chrissy |
Re: E/A Fehler 105
Ein Blick in die Hilfe was Fehler 105 bedeutet und mal das Beispiel zu AssigneFile angeguckt (eventuell mal die unbekannten Prozeduren verglichen) und dir sollte klar sein, warum dieser Fehler auftaucht und was du falsch machst, bzw. nicht machst.
|
Re: E/A Fehler 105
Blick in die Hilfe habe ich getätigt, bevor ich das ganze gepostet habe.
So wich ich das verstanden habe tritt der Fehler 105 bei Writeln auf, wenn keine Konsole existiert. Füge ich ein AllocColsole(); ein, schreibt er die Daten zwar, aber nicht ins Word Dokument, oder in csv-Datei sondern direkt in die Konsole... Eine weitere Idee die mir noch gekommen war, ist einfach mal Die Datei zu öffnen, um dann reinschreiben zu können, geht aber auch nicht... :( AssignFile(f, filename); und danach Reset(f); habe ich vorher auch schon ausprobiert... dann kommt nach Reset(f); die Fehlermeldung 32, Verletzung bei der gemeinsamen nutzung, aber wo nutze ich die Datei dann gemeinsam?! gehe ich vorher auf CloseFile(f); bekomme ich die Fehlermeldung, dass die Datei gar nicht geöffnet ist.... Auch wenn du meinst, ich könnte jetzt verstehen, was ich falsch gemacht habe, oder worin der Fehler liegt, vielleicht bin ich auch einfach nur Blind, hab aber echt keine Idee... Gruß Chrissy |
Re: E/A Fehler 105
Korrektur:
Reset war es. Und wenn die Datei gemsinsam genutzt wird, dann hast du sie entweder noch offen oder sie wurde exklusiv geöffnet. Und ich sehe auch schon, wo du sie nicht geschlossen hast - denke ich mal. |
Re: E/A Fehler 105
ok, fehler soweit entdeckt... Reset sollte die offene Datei ja automatisch schließen, wenn sie schon offen ist... Es mag am filemode gelegenhaben, durch hinzufügen der Zeile Filemode = 2 konnte er das ganze dann ohne weiteres ausführen....
Das ganze hat nur noch den haken, dass nacher in der datei trotzdem nichts dirn steht, obwohl writeln ausgeführt wird. |
Re: E/A Fehler 105
Zitat:
|
Re: E/A Fehler 105
Zitat:
Zitat:
|
Re: E/A Fehler 105
Ist ja schon gut. Ist spät. 8) Reset ? :gruebel: Du hast mich mit Assign auf die falsche Spur gelockt. Also gilt § 1 : Moderator hat immer Recht, sofern er Recht hat. :mrgreen:
|
Re: E/A Fehler 105
Ist ja schon ok,... es gibt ja keine Fehlermeldung mehr... ;)
bin ja dankbar für die Hilfe... Naja, ärgert mich halt nur noch, dass die Datei trotzdem lehrbleibt... |
Re: E/A Fehler 105
Der Code oben mit dem Reset und dem CloseFile sollte aber in Ordnung sein. Stimmen die Pfade?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 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