Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Write => I/O Error 103 (https://www.delphipraxis.net/128915-write-%3D-i-o-error-103-a.html)

himitsu 9. Feb 2009 13:43

Re: Write => I/O Error 103
 
Zitat:

Zitat von Z4ppy
Ich kann mir aber nicht vorstellen, dass mein Programm in C:\ keine Datei schreiben darf...

in Vista hat man dort (glaub ich) keinen Zugriff

taaktaak 9. Feb 2009 13:44

Re: Write => I/O Error 103
 
hab' ich mir so gedacht
:duck:

nahpets 9. Feb 2009 13:45

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.

mquadrat 9. Feb 2009 13:47

Re: Write => I/O Error 103
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von Z4ppy
Ich kann mir aber nicht vorstellen, dass mein Programm in C:\ keine Datei schreiben darf...

in Vista hat man dort (glaub ich) keinen Zugriff

Jep, dem is so. C:\ ist tabu ab Vista.

Z4ppy 9. Feb 2009 13:47

Re: Write => I/O Error 103
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von Z4ppy
Ich kann mir aber nicht vorstellen, dass mein Programm in C:\ keine Datei schreiben darf...

in Vista hat man dort (glaub ich) keinen Zugriff

In XP schon :duck:

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:
  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);
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:

himitsu 9. Feb 2009 13:56

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)

nahpets 9. Feb 2009 14:06

Re: Write => I/O Error 103
 
Hallo,

bitte mal ausgeben lassen:
Delphi-Quellcode:
ShowMessage(GetEnvironmentVariable('TMP')+'datei.txt');
Kommt da ein gültiger Dateiname bei raus oder fehlt eventuell zwischen GetEnvironmentVariable('TMP') und 'datei.txt' ein \?
Und wenn Tmp nach lokale Einstellungen verweist, dann muss der Dateiname in " stehen, da er Leerzeichen enthält.

Z4ppy 9. Feb 2009 14:09

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

himitsu 9. Feb 2009 14:18

Re: Write => I/O Error 103
 
Zitat:

Zitat von Z4ppy
@himitsu: Unterschiedlich, aber so um die 2-3 kb, also 2000-3000 Zeichen...

sollte eigentlich nicht zuviel sein ... probier es doch dennoch Mal mit weniger (weniger als 128 Byte/Zeichen, denn so groß ist der interne Puffer)

Zitat:

Zitat von Z4ppy
in diesem Fall das hier: "C:\DOKUME~1\{User}\LOKALE~1\Temp\datei.txt" :) Is halt MS DOS Format, sollte aber trotzdem klappen

sieht zumindestens ordenlich aus, der Pfad und jupp, unter XP sollte ed klappen ... bei Vista bin ich mir nicht sicher, da es dort nicht alle Namen als 8.3-Version gibt, aber dann sollte der Pfad auch nicht so "kurz" von dieser Funktion ausgegeben werden :angel2:

Z4ppy 9. Feb 2009 14:25

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:47 Uhr.
Seite 2 von 2     12   

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