Was mir aufgefallen ist: In sText dürften nachher die Zeilenumbrüche fehlen? Als folge sind das Wort am Ende einer Zeile und das am Anfang der nächsten Zeile evtl. zusammengeschrieben? Evtl. Lösung:
Delphi-Quellcode:
if eoln(textin) then // eoln True wenn Zeilenende
begin
writeln(textout); // Schreibt ganze Zeile in textout. Zeilenende wird automatisch angefügt.
readln(textin); // Liest ganze Zeile aus textin. Zeilenende wird automatisch verworfen.
sText:=sText+CHR(13)+CHR(10); // Zeilenumbruch hinzufügen. Kann auch 10 13 sein, kann mir das nie merken.
end
Und dann sei noch die Bemerkung erlaubt, dass der Code jetzt eine Länge ereicht hat, bei dem man evtl. überlegen sollte Teile in eine Unterfunktion auszulagern, z.B.:
Delphi-Quellcode:
function ErsetzeUmlaute(ch:Char):String;
var sZeichen:String;
begin
Case ch of
#196:sZeichen:='Ae'; // Ä
#214:sZeichen:='Oe'; // Ö
#220:sZeichen:='Ue'; // Ü
#228:sZeichen:='ae'; // ä
#246:sZeichen:='oe'; // ö
#252:sZeichen:='ue'; // ü
#223:sZeichen:='ss'; // ß
else
sZeichen:=ch;
end;
Result:=sZeichen;
end;
//Dann in der Hauptfunktion:
//...
read(textin,ch);
sZeichen:=ErsetzeUmlaute(ch);
sText:=sText+sZeichen;
write(textout,sZeichen);
//...