Autor Beitrag
Vriina
Hält's aus hier
Beiträge: 4

Win 98, WinNT, Win 2000, WinXP
D5 Prof. / D2005
BeitragVerfasst: Di 07.10.08 11:03 
Mein Programm erstellt zur Übergabe an ein anderes System aus einem Artikelstamm drei ASCII-Dateien. Wenn das Programm die Dateien auf dem Server (NT4) erstellt, so erscheint nach rund 10'000 Einträgen in den Ausgabedatein die Fehlermeldung E/A-Fehler 32.

Wenn die Dateien lokal erstellt werden, so läuft das Programm durch und erstellt problemlos über 100'000 Einträge.

Auszug aus dem Code:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
Procedure xy
var
OutputDatei : TextFile;
begin

//... Lesen des Artikels...

    sDateiName:=DEPfad.Text+'1\bac-art.asc';
    AssignFile(OutputDatei, sDateiName);
    Append(OutputDatei);

//... Instruktionen zur Erstellung des Ausgabestrings

    Writeln(OutputDatei, sAusgabe);
    CloseFile(OutputDatei);

    sDateiName:=DEPfad.Text+'1\bac-ean.asc';
    AssignFile(OutputDatei, sDateiName);
    Append(OutputDatei);

//... Instruktionen zur Erstellung des Ausgabestrings

    Writeln(OutputDatei, sAusgabe);
    CloseFile(OutputDatei);

    sDateiName:=DEPfad.Text+'1\bac-mst.asc';
    AssignFile(OutputDatei, sDateiName);
    Append(OutputDatei);

//... Instruktionen zur Erstellung des Ausgabestrings

    Writeln(OutputDatei, sAusgabe);
    CloseFile(OutputDatei);

//... und wieder rauf zum Lesen des Artikels

An was könnte dieses Problem liegen? Ist der Server zu langsam, sodass er sich bei den vielen Assign, Append, CloseFile verheddert?

Besten Dank für ein Antwort.

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 07.10.2008 um 12:54
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 07.10.08 11:36 
Guck doch einfach mal in der Hilfe, was E/A Fehler 32 bedeutet...
Knulli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 116
Erhaltene Danke: 2

Win2k, Win7, Win10
D5, D2005, D2006, D2007, D10.4.2
BeitragVerfasst: Di 07.10.08 11:42 
Wie lang sind denn die Dateien, wenn er abbricht?

> 2 GB?

Da hat NT4 glaub ich Probleme mit.
Vriina Threadstarter
Hält's aus hier
Beiträge: 4

Win 98, WinNT, Win 2000, WinXP
D5 Prof. / D2005
BeitragVerfasst: Di 07.10.08 12:49 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Guck doch einfach mal in der Hilfe, was E/A Fehler 32 bedeutet...


Ich weiss schon, was der E/A-32 bedeutet, aber ich weiss nicht, warum er bei der Verarbeitung auf dem Server auftritt, lokal jedoch nicht.
Vriina Threadstarter
Hält's aus hier
Beiträge: 4

Win 98, WinNT, Win 2000, WinXP
D5 Prof. / D2005
BeitragVerfasst: Di 07.10.08 12:50 
user profile iconKnulli hat folgendes geschrieben Zum zitierten Posting springen:
Wie lang sind denn die Dateien, wenn er abbricht?

> 2 GB?

Da hat NT4 glaub ich Probleme mit.


Die Dateigrössen bewegen sich im Mega-Bereich, weit entfernt von Giga.
Knulli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 116
Erhaltene Danke: 2

Win2k, Win7, Win10
D5, D2005, D2006, D2007, D10.4.2
BeitragVerfasst: Di 07.10.08 13:01 
Hast Du mal auf einem anderen Server versucht zu schreiben? Irgendeine Freigabe im Netzwerk meine ich, die NICHT von einem NT4 Server stammt.

Wie sieht denn der Pfad zu deiner Datei aus?

Versuchs auch mal mit TFileStream oder mit API-Funktionen. Gibts dann auch die Probleme?


Knulli
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 07.10.08 14:06 
Irgendweswegen ist die Datei jedenfalls noch offen, die Frage ist doch, wenn du so oft hintereinander in die gleichen (?) Dateien schreibst, ob du die nicht geöffnet lassen kannst. Außer für ein LogFile muss man die ja nicht jedesmal wieder schließen, das dauert ja dann extra lange.

Die andere ist, dass du vor dem Schließen versuchen könntest ggf. noch nicht geschriebene Daten per Flush (irgendwie so ähnlich müsste der Befehl heißen) explizit zu schreiben. Das sollte bei CloseFile zwar auch passieren, aber vielleicht wird da was zwischengespeichert. (Das ist aber nur eine Vermutung.)
Vriina Threadstarter
Hält's aus hier
Beiträge: 4

Win 98, WinNT, Win 2000, WinXP
D5 Prof. / D2005
BeitragVerfasst: Di 07.10.08 15:35 
Hallo zusammen

Das Problem ist gelöst - der Grund: die Spiegelung auf dem NT4-Server funktionierte nicht mehr richtig. Nachdem wir sie neu eingerichtet haben, konnten wir unterdessen die Verarbeitung mehrere Male ohne Probleme durchführen.

Herzlichen Dank für Eure Hilfe

Gruss Vriina