[Allegro] a99: Problem mit mittellangen Zeilen bei get
Thomas Berger
ThB at Gymel.com
Do Dez 8 12:19:03 CET 2011
Lieber Herr Eversberg,
ich hole aus a99 ueber den Mechanismus "Internet-Datei" Daten aus einem
OAI-Repository, dabei muss ich diese aber leicht umschreiben
(<?xml:stylesheet ...?> vorne einsetzen). Da das Resultat eine
unbekannte Groesse hat, nutze ich nicht "get I", sondern "open"
und verarbeite das Resultat portionsweise wie folgt:
var #url
open
if cancel mess;end
:storedoc
get
if cancel jump storedone
[tue etwas]
write
jump storedoc
:storedone
...
Nun ist es aber so, dass "get" entgegen der Dokumentation nicht
immer ganze Zeilen liefert, sondern bei 2048 Bytes abschneidet
(das naechste "get" liefert dann die naechste Portion).
Das mag ja noch in Ordnung sein, da aber das/die Zeilenendezeichen
entfernt werden (xget.rtf dokumentiert das so und es stimmt auch),
kann ich dem Text in der iV nicht ansehen, ob es eine partielle Zeile
ist (ein newline *darf* nicht ergaenzt werden, sonst werden XML Tags
oder Attributnamen zerstoert) oder eine vollstaendige (ein newline
oder zumindest irgendeine Form von Leerzeichen *muss* ergaenzt werden,
sonst verschmelzen evtl. zwei Worte in Tags oder Inhaltstext).
Hier besteht Handlungsbedarf, wenn get so implementiert ist, dass
es Zeilenvorschuebe entfernt, dann muss es auch stets vollstaendige
Zeilen liefern und darf nicht chunken.
[Weil es nur um eine winzige Ersetzung ziemlich am Anfang der
Datei geht, war ich mit dem zeilenweisen Ansatz von get
eigentlich sehr zufrieden und hatte darauf verzichtet, mittels
"fetch" einen XML-Parser zu bauen. Der wuerde natuerlich faellig,
wenn die Zeilen die theoretische iV-Groesse sprengen oder aus
anderen Gruenden auf hoechste Sauberkeit zu achten ist...]
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro