![]() |
Write => I/O Error 103
Mein Code:
Delphi-Quellcode:
Kann mir jemand erklären, warum das passiert?
var F:TextFile;
T:string; {...} AssignFile(F,'C:\datei.txt'); Rewrite(F); Write(F,T); << hier gibts den I/O Error 103 CloseFile(F); MfG Z4ppy |
Re: Write => I/O Error 103
Die 103 steht meistens für FileNotOpen ... also wird wohl die Datei nicht (richtig) geöffnet worden sein?
|
Re: Write => I/O Error 103
Ja, das weiss ich, aber wenn ich ReWrite aufrufe, sollte das doch geschehen sein, oder?
MfG Z4ppy |
Re: Write => I/O Error 103
Hallo,
schau bitte mal zuerst, ob das ReWrite tatsächlich erfolgreich ist.
Delphi-Quellcode:
AssignFile(F, 'C:\datei.txt'); {$I-} ReWrite(F); {$I+} tmp := ioresult; if tmp = 0 then begin // erfolgreich Showmessage('Erfolgreich! ioresult='+inttostr(tmp)); end else begin Showmessage('nicht Erfolgreich! ioresult='+inttostr(tmp)); end; |
Re: Write => I/O Error 103
kommt drauf an.
- exisitert diese Datei schon? - hat dein Programm in diesem Verzeichnis überhaupt die nötigen Rechte, um sowas zu machen? - ... - siehe nahpets |
Re: Write => I/O Error 103
Ja, ReWrite ist erfolgreich: "Erfolgreich! ioresult=0"
MfG Z4ppy |
Re: Write => I/O Error 103
In einem TextFile kannst du keine Strings, sondern nur String[] speichern
:wink: |
Re: Write => I/O Error 103
Delphi-Quellcode:
wenn das jetzt nur "nicht Erfolgreich! ioresult=103" ausgibt, dann probier es erstmal mit einem anderem Verzeichnis.
AssignFile(F, 'C:\datei.txt');
{$I-} ReWrite(F); Write(F, T); {$I+} tmp := ioresult; if tmp = 0 then Showmessage('Erfolgreich! ioresult=' + IntToStr(tmp)) else Showmessage('nicht Erfolgreich! ioresult=' + IntToStr(tmp)); @taaktaak: wer sagt das? :gruebel: PS: bei mir läuft dein Code (von da ganz oben) fehlerlos durch. |
Re: Write => I/O Error 103
"nicht Erfolgreich! ioresult=103" :wall: :wall: :wall:
Ich kann mir aber nicht vorstellen, dass mein Programm in C:\ keine Datei schreiben darf... MfG Z4ppy |
Re: Write => I/O Error 103
@taaktaak: ähhh. Und warum kann ich das dann immer machen?
|
Re: Write => I/O Error 103
Zitat:
|
Re: Write => I/O Error 103
hab' ich mir so gedacht
:duck: |
Re: Write => I/O Error 103
Hallo,
hat ein anderer Prozess die Datei noch dazwischen? Ändere bitte zuerst mal den Dateinamen und versuche es nochmal. Bleibt das Problem, schreib' die Datei woanders hin. Je nach Betriebssystem/Konfiguration musst Du nicht zwingend nach C: schreiben dürfen. Zum Testen ist des Temp-Verzeichnis immer recht gut. Ist das Problem mit geändertem Dateinamen weg, hat irgendein Prozess die Datei noch im Zugriff oder sie ist irgendwann man nicht richtig geschlossen worden und das Betriebssystem betrachtet sie noch als in Benutzung. Dann sollte das Problem nach 'nem Neustart aber weg sein. |
Re: Write => I/O Error 103
Zitat:
|
Re: Write => I/O Error 103
Zitat:
In C:\Dokumente und Einstellungen\{Username}\Lokale Einstellungen\Temp > I/O Fehler 103 :wall::wall::wall: MfG Z4ppy €dit: Hab jetz mal das hier getestet:
Delphi-Quellcode:
Da krieg ich zuerst "nicht Erfolgreich! ioresult=123" und dann das bekannte 103... I/O Error 123 = ERROR_INVALID_NAME, aber der Name müsste ja korrekt sein :wall::wall::wall:
AssignFile(F,IncludeTrailingPathDelimiter(GetEnvironmentVariable('TMP'))+'datei.txt');
{$I-} ReWrite(F); {$I+} tmp := ioresult; if tmp = 0 then MessageBox(0,PChar('Erfolgreich! ioresult=' + IntToStr(tmp)),'',MB_OK) else MessageBox(0,PChar('nicht Erfolgreich! ioresult=' + IntToStr(tmp)),'',MB_OK);{$I-} {$I-} Write(F, T); {$I+} tmp := ioresult; if tmp = 0 then MessageBox(0,PChar('Erfolgreich! ioresult=' + IntToStr(tmp)),'',MB_OK) else MessageBox(0,PChar('nicht Erfolgreich! ioresult=' + IntToStr(tmp)),'',MB_OK); |
Re: Write => I/O Error 103
wie klein ist denn dein String, den du da reinspeichern willst?
und unter XP kann man das da auch verbieten (wenn man will) |
Re: Write => I/O Error 103
Hallo,
bitte mal ausgeben lassen:
Delphi-Quellcode:
Kommt da ein gültiger Dateiname bei raus oder fehlt eventuell zwischen GetEnvironmentVariable('TMP') und 'datei.txt' ein \?
ShowMessage(GetEnvironmentVariable('TMP')+'datei.txt');
Und wenn Tmp nach lokale Einstellungen verweist, dann muss der Dateiname in " stehen, da er Leerzeichen enthält. |
Re: Write => I/O Error 103
@himitsu: Unterschiedlich, aber so um die 2-3 kb, also 2000-3000 Zeichen...
@nahpets: Darum hab ich ja noch IncludeTrailingPathDelimiter reingenommen, dann kommt aus was gscheites raus, in diesem Fall das hier: "C:\DOKUME~1\{User}\LOKALE~1\Temp\datei.txt" :) Is halt MS DOS Format, sollte aber trotzdem klappen MfG Z4ppy |
Re: Write => I/O Error 103
Zitat:
Zitat:
|
Re: Write => I/O Error 103
Jetz gehts plötzlich... Ich hab nur eine Zeile eingefügt: "T:='abcabcabcabc';", dann gings... Dann hab ich diese Zeile wieder auskommentiert und jetz gehts auch :D Worans schlussendlich lag, ist mir schleierhaft...
Aber danke für eure schnelle Unterstützung :) MfG Z4ppy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 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