Moin
Wie du schon vermutetest, würde man das üblicherweise mit #while... erledigen:
counter := 0. [ counter := counter + 1. char := stream next. char isNil or: [char asInteger = 10 or: [counter > 255]] ] whileFalse.
Die Methode bzw. der Block liefert dann true zurueck. Noch besser waers natuerlich, wenn der Block gleich "endOfFile" oder "lineTooLong" als Ergebnis bekommen koennte. Geht das ohne Benutzung einer "errcode" Variablen?? Vor ein paar Monaten noch haette ich das mit "case" etc geloest, aber ich hoere schon den Aufschrei in der Smalltalk-Welt :)
Da dann nach der Schleife natürlich nichts mehr folgen kann, macht man daraus eine eigene Methode. Was anerkanntermaßen sowieso meist eine gute Idee ist ;-)
Alles ueber acht Zeilen soll man refactorieren, hab ich gelesen. Wenn ich mir meine alten Programme so anschaue, waere es einfacher ALLES neu zu schreiben :)
Leider ist die Auswahl an deutschsprachigen Smalltalk-Buechern, die mehr als nur die Syntax vermitteln nicht so reichhaltig
Bis dann Enno