[Tustep-Liste] Maximale Dateigröße überschritten?
Thomas Kollatz
kol at steinheim-institut.org
So Mär 17 18:53:09 CET 2013
Lieber Herr Schneider,
Am 17.03.2013 um 16:04 schrieb Matthias Schneider <mail at m-schneider.eu>:
> Als Übergangslösung wollte ich mein Backup-Progrämmchen dann um einen TUSCRIPT-Anteil erweitern (s. "back.up"), der zunächst die Dateigröße der Zieldatei abprüfen und ggf. in Abhängigkeit von einer noch einzufügenden Maximalgröße eine neue Zieldatei erstellen sollte. Hier bin ich mitten in der Erstellung auf ein Problem bei der Verarbeitung von Zahlen größer als 2000000000 gestoßen, was bei der Abfrage der Dateigröße im GB-Bereich mittels BYTES zum Programmabbruch führt.
> Auch der Versuch, die Zahl durch Überführung in eine größere Einheit (MB) zu verkleinern brachte nicht das gewünschte Ergebnis, da die Umrechnung gar nicht erst erfolgen kann.
> Hier bin ich ebenfalls für Lösungsvorschläge sehr dankbar.
Meine Backup-Banddatei erreicht auch alle halbe Jahre ihre Maximalgröße.
Ich war bisher nur zu faul, da eine ordentliche Lösung, so wie die von Ihnen vorgeschlagene eine ist, in die bestehende Backup-Routine einzubauen.
Ihre Mail hat mich inspiriert mich dem Problem endlich einmal zu widmen mit ähnlichem Ergebnis:
Ich glaube das Problem ist, dass eine Datei die sich der 2GB Grenze nähert eine 10-stellige Bytesgröße hat, die kann zwar angezeigt, aber nicht weiterverarbeitet, verglichen .gt. / .ge. werden, da lässt TUSTEP bisher nur 9 Stellen zu.
Wenn wir automatisch eine neue Backupdatei einrichten, sobald die alte Datei 999999999 bytes überschreitet, ist das kein Problem, wenn wir der Backupdatei noch 1GB gönnen wollen, dann können wir nur auf die Fehlermeldung (... nicht abgeschlossen ... warten).
Hier mein Testprogramm (erst mit der tustep.ini, dann mit einer Banddatei, die die 2GB Grenze überschritten hat):
$$ MODE TUSCRIPT,{}
datei="tustep.ini"
bytes=BYTES(datei)
IF (bytes>=2100000) PRINT datei," ist zu gross: ",bytes," Bytes"
banddatei="banddatei"
status =OPEN(banddatei,READ,home)
status =CHECK(banddatei,READ,TAPE)
bytes =BYTES(banddatei)
PRINT banddatei, " hat ", bytes, "Bytes"
length_bytes=LENGTH(bytes)
PRINT "length_bytes = ",length_bytes
IF (bytes.gt.1800000000) PRINT banddatei," ist zu gross: ",bytes," Bytes"
-----> Bildschirmausgabe:
tustep.ini ist zu gross: 2162688 Bytes
banddatei hat 2000003072
length_bytes = 10
######## Nach >.gt.< folgt >1800000000< statt Zahl mit maximal 9 Ziffern #####
0.1/5 IF (bytes.gt.1800000000) PRINT banddatei," ist zu gross: ",b
ytes," Bytes"
Herzliche Grüße
THOMAS KOLLATZ
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://lists.itug.de/pipermail/tustep-liste/attachments/20130317/3b2b4b7a/attachment.htm>
Mehr Informationen über die Mailingliste Tustep-Liste