Thema Datum  Von Nutzer Rating
Antwort
25.10.2007 00:27:27 Steffen
NotSolved
25.10.2007 13:58:28 Holger
NotSolved
25.10.2007 23:01:16 Steffen
NotSolved
Blau Aw:Aw:Aw:riesige Textdatei verarbeiten
26.10.2007 11:39:38 Holger
NotSolved
26.10.2007 14:19:08 Steffen
NotSolved
26.10.2007 16:46:19 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
26.10.2007 11:39:38
Views:
992
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:riesige Textdatei verarbeiten
Hallo Steffen,
das ist schon merkwürdig. Mir ist nichts darüber bekannt, dass die Länge einer sequentiellen Datei außer durch die physikalischen Gegenbenheiten beschränkt ist. Allerdings habe ich bisher nicht solch riesige Dateien in VBA bearbeitet.
Ich schlage noch folgende Prüfungen nacheinander vor:
1. Prüfe den Wert von EOF(1) beim Abbruch. Wenn er bereits auf "true" steht, ist die Ausgangsdatei zu prüfen, warum dies vor dem erwarteten Ende passiert. Da keine Fehlermeldung kommt und der PC offenbar weiterarbeitet, ist nicht auszuschließen, dass das Programm denkt, es bereits fertig.
2. Versuche "Append" anstelle von "Output".
3. Versuche die "Write#"-Anweisung anstelle von "Print#".
Falls eine Lösung zum Erfolg führt, teile dies bitte mit.
Falls nicht, nenne die technischen Daten beim Makroabbruch, möglichst auch bei den oben vorgeschlagenen Änderungen:
- Länge der geschrieben Datei in Byte
- Wie viele "temp"s wurden geschrieben? Ist das letzte vollständig?
- Wie viel Platz ist beim Abbruch noch auf der Festplatte?

Holger

Steffen schrieb am 25.10.2007 23:01:16:


Hi Holger,

das Makro stürzt ohne Fehlermeldung ab. An dieser Stelle ist temp lang genug. Liegt es u.U. an der Open for Output Anweisung, denn ohne Schreiben in die zweite Datei läuft das Makro. Kann dies ein VBA Problem sein? Zu große Dateien?

Steffen

Holger schrieb am 25.10.2007 13:58:28:

Hallo Steffen,
in welcher Zeile deines Programmes bricht die Ausführung ab? Welche Fehlermeldung wird erzeugt? Bist du dir sicher, dass die Datei an der Abbruchstelle in Ordnung ist? Wenn z.B. temp dort nur 7 Zeichen lang ist, führt Mid(temp,i,1) mit i=8 zu einem Abbruch. Falls erforderlich, melde dich noch einmal.
Holger

Steffen schrieb am 25.10.2007 00:27:27:

Hallo an die versierte Gemeinde hier.....
Ich versuche eine riesige Textdatei mit ca. 1,7GB (Schachdatenbank)
zeilenweise einzulesen, dort bestimmte Stellen ein Leerzeichen durch ein Komma ersetzen und dann die so editierte Zeile, so wie auch die nicht veränderten Zeilen wieder zeilenweise in eine neue Datei zu speichern. Das ganze funktioniert soweit auch ganz gut, nur hört das Makro nach ca. 1.000.000 Zeilen auf, immer an der gleichen Stelle.
......
Sub Zusammen()

Open "c:\IBASE15.pgn" For Input As #1
Open "c:\ibase15_1.pgn" For Output As #2
Do While Not EOF(1)
Line Input #1, temp
If Left(temp, 7) = "[White " Or Left(temp, 7) = "[Black " Then
a = Len(temp)
For I = 8 To a
If Mid(temp, I, 1) = " " Then
temp = Left(temp, I - 1) & "," & Right(temp, a - I)
GoTo raus
End If
Next I
End If
raus:
Print #2, temp
Loop
Close #1

End Sub
.................

Warum ist dies so????

Grüße Steffen

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
25.10.2007 00:27:27 Steffen
NotSolved
25.10.2007 13:58:28 Holger
NotSolved
25.10.2007 23:01:16 Steffen
NotSolved
Blau Aw:Aw:Aw:riesige Textdatei verarbeiten
26.10.2007 11:39:38 Holger
NotSolved
26.10.2007 14:19:08 Steffen
NotSolved
26.10.2007 16:46:19 Holger
NotSolved