Помогите решить задачку!
Дано: текст на русском языке.
Задане: переформатировать текст так, чтобы длина любой строки не превосходила 40 символов.(Выравнивать по правому краю не требуется).
Спасибо заранее!
uses crt;
type
TText = array[1..50] of string[40];
var
T : TText;
ch: char;
i : integer;
Begin
clrscr;
i :=1 ;
repeat
ch := readkey;
write(ch);
if not(ch=#27) and not(ch=#0) then
T[i] := T[i]+ch;
if length(T[i])=40 then begin
inc(i);
writeln;
end;
until (i=51)or(ch=#27);
readln;
End.
uses crt;
const
maxLen = 40;
delimit = [' ', '.', ','];
var
s, T: string;
ch: char;
begin
s := '';
repeat
ch := readkey;
case ch of
#0 : readkey;
#27: ; { ничего не делать ... }
else begin
write(ch);
s := s + ch;
if length(s) = maxLen then begin
T := '';
while not (s[length(s)] in delimit) do begin
T := s[length(s)] + T;
delete(s, length(s), 1);
gotoxy(wherex - 1, wherey); clreol;
end;
s := T;
writeln;
write(s);
end;
end;
end;
until ch = #27;
end.
uses crt;
const
maxLen = 40;
delimit = [' ', '.', ','];
var
s, T: string;
ch: char;
f: text;
begin
assign(f, 'text.txt');
reset(f);
s := '';
while not eof(f) do begin
read(f, ch);
write(ch);
s := s + ch;
if length(s) = maxLen then begin
T := '';
while not (s[length(s)] in delimit) do begin
T := s[length(s)] + T;
delete(s, length(s), 1);
gotoxy(wherex - 1, wherey); clreol;
end;
s := T;
writeln;
write(s);
end;
end;
close(f);
end.