Gelöst - Maximale Dateigröße (wurde doch nicht erreicht)
Verfasst: 16.11.2012 13:51
Hallo, hatte ein kleines Programm gebastelt, das ein Script ersetzen soll, aus einer ASCII-Datei mit dem Aufbau:
Zahl3 ausliest und diese mit einem Faktor faktorisiert. Die Daten können u.U. bis in den GB-Bereich Größe haben.
Nun zum Problem: PB Bricht beim Lesen der alten Datei (mit Ausgangswerten) oder Schreiben der neuen Datei (mit berechneten Werten) bei 440MB ab.
Woran könnte das liegen?
Verwendetes PB v. 5.00 (Windows 7 - x86-64)
Hier noch der Quellcode:
Danke schonmal im Voraus für die Hilfe!
Code: Alles auswählen
Zahl1 Zahl2 Zahl3Nun zum Problem: PB Bricht beim Lesen der alten Datei (mit Ausgangswerten) oder Schreiben der neuen Datei (mit berechneten Werten) bei 440MB ab.
Woran könnte das liegen?
Verwendetes PB v. 5.00 (Windows 7 - x86-64)
Hier noch der Quellcode:
Code: Alles auswählen
; Console Öffnen
OpenConsole()
; Dateinamen für Eingabedatei abfragen
Print("# Bitte Dateinamen mit Endung Eingeben: ")
dateiname$ = Input()
; Z-Faktor für spätere Multiplikation mit Z-Wert (aus Datei) abfragen
Print("# Den z-Faktor Eingeben - Dezimaltrennzeichen ist der (.): ");
zfaktor.d = ValD(Input())
; Startzeit berechnen
startzeit$ = FormatDate("%hh:%ii Uhr am %dd.%mm.%yy", Date())
; Wertebereich von Z-Faktor Prüfen
If ( (zfaktor.d < 10) And (zfaktor.d > 0.5))
; Startzeit ausgeben
PrintN("# Startzeitpunkt: " + startzeit$)
; DateiOutputName Definieren (für berechnete Werte)
dateiname_out$ = "OUT_" + StrD(zfaktor.d,1) + "_" + dateiname$
; Dateien öffnen bzw. wenn nicht vorhanden anlegen
If (FileSize(dateiname$) <> -1)
OpenFile(0, dateiname$)
If OpenFile(1, dateiname_out$)
; Bis Dateiende erreicht ist zeilenweise lesen
While(Not Eof(0)<>0)
; Zeile einlesen
a$ = ReadString(0)
Xwert$ = StringField(a$,2," ")
Ywert$ = StringField(a$,4," ")
Zwert$ = StringField(a$,6," ")
; Gelesenen String als Zahl zum Rechnen umwandeln
z.d = ValD(Zwert$)
Zout$ = StrD(z.d*zfaktor.d, 1)
; Ausgabe zeilenweise in Datei
OutZeile$ = " " +Xwert$ + " " + Ywert$ + " " + Zout$
WriteStringN(1, OutZeile$)
Wend
; Nach dem alles fertig ist Dateien schließen
CloseFile(1)
CloseFile(0)
; Endzeit berechnen & ausgeben, sowie Erfolgsmeldung
endzeit$ = FormatDate("%hh:%ii Uhr am %dd.%mm.%yy", Date())
PrintN("# Endzeitpunkt : " + endzeit$)
PrintN("")
PrintN("# Alle Berechnungen sind abgeschlossen!")
PrintN("")
PrintN("# [ENTER] um Programm zu beenden!")
EndIf
Else
PrintN("Fehler beim oeffnen der Datei!")
EndIf
Else
PrintN("Z-Faktor zwischen 0.5 und 10 angeben!")
EndIf
Input()
CloseConsole()