[Allegro] AVANTI:EOR - mal da, mal nicht da

Sibylle Koczian Sibylle.Koczian at t-online.de
Mi Jun 15 14:51:37 CEST 2011


Lieber Herr Berger, liebe Liste,

Am 15.06.2011 13:25, schrieb Thomas Berger:
>> - "n" bzw. "newline" im Job erzeugt CR LF (jedenfalls, wenn Server und Browser
>> oder sonstiger Client unter Windows laufen, andere Varianten habe ich noch nicht
>> ausprobiert).
>
> das ist ja etwas, das acon mit sich selbst ausmacht und sollte
> daher hoechstens von der Plattform von acon (und / oder
> avanti) abhaengen.
>
> soeben getestet: Scheint (derzeit) stets CRLF zu sein.
>
>
>> - "help" und "help available" haben nur LF in der Ausgabe.
>
> soeben getestet: stimmt.
>
Wozu dieser Unterschied gut sein soll, ist mir unklar. Mir schiene es 
besser, wenn mehrzeilige Ausgaben, die acon selbst verantwortet, den 
gleichen Zeilentrenner benutzen würden, wie ihn "newline" erzeugt.

Parameterdateien stehen wohl zwangsläufig auf einem anderen Blatt.

>
>> - Hinter dem AVANTI:EOR kommt noch CR LF.
>
> soeben getestet: Das ist tatsaechlich plattformabhaengig...
>
> Hier muessen Sie bei Tests also besonders darauf achten, nicht
> vom ueberfluessigen bzw. fehlenden CR verwirrt zu werden (je nach
> Plattform von avanti ist bei).
>
"... ist beides möglich)", war es so gemeint? Mir war in diesem 
Zusammenhang in erster Linie wichtig, ob _irgendein_ 
Zeilenumbruchskonstrukt noch nach dem AVANTI:EOR kommt.
>
>> Stimmt das alles so oder habe ich aus irgendeinem Job-Ergebnis einen falschen
>> Schluss gezogen?
>
> D.h. wir haben Konstrukte, die plattformabhaengig LF oder CR LF
> liefern, und solche, die plattformunabhaengig stets LF liefern
> und wieder andere, die plattformunabhaengig CRLF liefern: Supi.
>
Stimmt. An dieser Stelle bin ich über .NET nicht unerfreut, die 
StreamReader.ReadLine-Methode interpretiert alle drei Konstrukte als je 
einen einzelnen Zeilenumbruch. Jedenfalls sagt das die Dokumentation.

Mein eigentliches Problem hat sich wieder mal als etwas ganz anderes 
herausgestellt: ich hatte beim Lesen der Avanti-Antwort nicht explizit 
auf AVANTI:EOR getestet, sondern auf StreamReader.Peek() < 0 als Ende 
der Antwort. Und das stimmt nicht, das kann durchaus auch mal vor dem 
Eintreffen von AVANTI:EOR zutreffen - und vermutlich wohl auch mitten in 
der Antwort?

Sehe ich jetzt richtig: eine Antwort von Avanti ist zu Ende, wenn die 
Schlussmeldung eingetroffen ist. Alles andere, einschließlich "kein 
Zeichen zum Lesen da" oder wohl auch "keine Daten verfügbar" oder "Ende 
des Streams" ist uninteressant.

Dank und Gruß,
Koczian



Mehr Informationen über die Mailingliste Allegro