Помогите плиз!!! Написать программу, которая вставляет пробел после знаков препинания в текстовом файле, если его там нет.
Я написал код который встваляет пробелы после запятой а нада после всех знаков препинания!!! И почему то читает только первую строку в файле, если в файле создавать несколько строк, то прога виснет!!! Помогите плиизз!!!!
procedure probel(var f:text);
begin
assign (f2,'C:\ret.txt');
rewrite(f2);
assign (f,'C:\ter.txt');
reset (f);
while not eof(f) do
readln(f,s);
while pos(',',s)<>0 do
begin
if s[pos(',',s)+1]<>' ' then
begin
ss:=ss+copy(s,1,pos(',',s))+' ';
delete (s,1,pos(',',s));
end
else
begin
ss:=ss+copy(s,1,pos(',',s)+1);
delete (s,1,pos(',',s)+1);
end;
end;
write(f2,ss);
close(f);
close(f2);
erase(f);
rename(f2,'C:\ter.txt');
end;
Текстовый файл! Задача!
-
- Сообщения: 526
- Зарегистрирован: 03 янв 2009, 23:17
- Откуда: Voronezh
- Контактная информация:
Вот Вам задача. Пожалуйста оставьте отзыв!
program probel;
uses crt;
const znak=[',','.','!','?',':',';'];{dobavte suda esche simvolov}
var f,g:text;
bukva:char;
fail:string;
begin
clrscr;
writeln('Vvedite put i imia faila');
readln(fail);
assign (f,fail);
reset(f);
insert('_ispravleno',fail,length(fail)-3);
assign(g,fail);
rewrite(g);
while eof(f)=false do
begin
read(f,bukva);
append(g);
if bukva in znak then
begin
write(g,bukva,' ');
end
else
write(g,bukva);
end;
end.
program probel;
uses crt;
const znak=[',','.','!','?',':',';'];{dobavte suda esche simvolov}
var f,g:text;
bukva:char;
fail:string;
begin
clrscr;
writeln('Vvedite put i imia faila');
readln(fail);
assign (f,fail);
reset(f);
insert('_ispravleno',fail,length(fail)-3);
assign(g,fail);
rewrite(g);
while eof(f)=false do
begin
read(f,bukva);
append(g);
if bukva in znak then
begin
write(g,bukva,' ');
end
else
write(g,bukva);
end;
end.
А зачем в цикле столько раз открывать файл на добавление?
Код: Выделить всё
reset(f, '1.txt');
rewrite(g,'2.txt');
while not eof(f) do
begin
readln(f,s);
s1:='';
for i:=1 to length s do
if (s[i] in znak) and (s[i+1]<>' ') then s1:=s1+s[i]+' ' else s1:=s1+s[i];
writeln(g, s1);
end;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
......................................