Модератор: Модераторы
for j:=x to length(a) do
Взять строку-источник.... пока не конец строки проверяем условие (пробел или нет)
если нет, то берем первый символ и записываем его в буферную строку первым символом
Если да, то записываем буферную строку в строку-приемник и добавляем пробел. очищаем буфер
конец цикла
записать строку в файл
const
sf=[' ','.',',','!','?','-'];
procedure ReadFile(var af:text;var st:string);
var
sc:string;
ch:char;
begin
sc:='';
repeat
read(af,ch);
if not(ch in sf) then
sc:=ch+sc
else begin
sc:=sc+ch;
st:=st+sc;
sc:='';
end;
until eof(af);
end;
var
f:text;
s:string;
begin
Assign(f,'C:\Files for Program Pascal\files\Testin.txt');
reset(f);
s:='';
ReadFile(f,s);
close(f);
Assign(f,'C:\Files for Program Pascal\files\Testout.txt');
rewrite(f);
write(f,s);
Close(f);
writeln('Готово!');
readln;
end.
procedure Rev(b, e: integer; var s: string);
var t: char;
begin
while b<e do begin
t:=s[b]; s[b]:=s[e]; s[e]:=t;
inc(b); dec(e);
end;
end;
const
blanks = [#0..#127]-['0'..'9','A'..'Z','a'..'z'];
var
fi, fo: Text;
s: string;
i, j: integer;
begin
Assign(fi,'in.txt'); Assign(fo,'out.txt');
Reset(fi); Rewrite(fo);
while not EOF(fi) do begin
ReadLn(fi,s);
i:=Length(s);
while i>0 do begin
while (s[i] in blanks) and (i>0) do dec(i);
j:=i; while not (s[i] in blanks) and (i>0) do dec(i);
Rev(i+1,j,s);
end;
WriteLn(fo,s);
end;
Close(fi); Close(fo);
end.
const
blanks = [#0..#127]-['0'..'9','A'..'Z','a'..'z'];
var
fi, fo: Text;
bi, bo: array [0..1024*4-1] of byte; {*}
s: string;
c: char;
begin
Assign(fi,'in.txt'); Assign(fo,'out.txt');
Reset(fi); Rewrite(fo);
SetTextBuf(fi,bi,sizeof(bi)); SetTextBuf(fo,bo,sizeof(bo)); {*}
s:='';
while not EOF(fi) do begin
Read(fi,c);
if c in blanks then begin
Write(fo,s,c); s:='';
end else s:=c+s;
end;
Write(fo,s);
Close(fi); Close(fo);
end.
Trasebit писал(а):начала пытался реализовать способ форумчанина с ником Лекс Айрин, но что-то у меня с синтаксисом не срослось, а потом постоянно вылетало несоответствие типов.
Trasebit писал(а):Кстати, если запустить код, а файл пуст, то ошибки нет. В этом случае единственным результатом программы будет создание пустого файла.
Trasebit писал(а):Это условие нужно ,чтобы цикл продолжался с начала следующего слова.
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1