[Allegro] a99: Problem mit mittellangen Zeilen bei get
Bernhard Eversberg
ev at biblio.tu-bs.de
Do Dez 8 13:26:02 CET 2011
Am 08.12.2011 13:02, schrieb Thomas Berger:
>
>
>> Die Funktion könnte am Ende ein NewLine mitliefern, wenn die
>> gelesene "Zeile" kürzer war, oder eben nichts, wenn sie länger war.
>> Was genau sollte also am besten passieren? Wobei bestehende Anwendungen
>> wohl besser nicht durch eine Änderung betroffen werden sollten.
>
> Das "\n" am Zeilenende nicht wegzuoptimieren waere damals wohl
> die schlauere Art gewesen, "get" zu implementieren. Dafuer ist
> es nun aber zu spaet.
>
Leicht könnte man es so machen, daß ein LineFeed am Ende durch ein
Spatium ersetzt würde statt ganz wegzufallen. ins't man das Ergebnis
in eine $-Variable, bleibt es erhalten, sonst nicht. Dadurch blieben
bestehende Anwendungen weitestgehend ungestört.
Allerdings könnte just an der Abbruchstelle bei einer überlangen "Zeile"
ein "natürliches" Spatium stehen. Diese Situation wäre dann
unerkennbar.
> Ginge es nicht, einen Errorcode zu setzen ("truncated")?
>
Das wird sich wohl auch machen lassen. Das Dateiende macht sich
durch Bedingung "cancel" bemerkbar, wenn also nichts mehr zu lesen war.
>
> Anderer Ansatz: $@ ist ja system-reserviert. Kann nicht get
> die Null oder mehr Zeichen, die tatsaechlich abgeschnitten
> wurden, als Seiteneffekt in $@<irgendwas> hinterlegen?
>
Da bleibt zu prüfen, wie <irgendwas> am besten aussehen sollte.
B.E.
Mehr Informationen über die Mailingliste Allegro