Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2010, 19:17   #1
minimo71
 
Регистрация: 04.10.2010
Сообщений: 7
По умолчанию Pascal, обработка текста

Добрый день, ув. форумчане!

Требуется ваша помощь! Есть задача довольно начального уровня - считать один текс.файл и скопировать текст в другой, но, если 2 рядом находящиеся строчки одинаковы, то записать только одни из них.

Как бы идея мне ясна, но вот никак не могу до конца добить - 1 и 2 строчку проверяет, но вот 2 и 3 уже не хочет (знаю, можно добавить пару строчек, но результат будет похожий - например, не сравнит 4 и 5) [в моём варианте кода]

Поэтому прошу, подскажите как это сделать - не сомневаюсь, это должно быть очень просто, только я никак не могу до этого додуматься!

Цитата:
uses crt;
var f,e: text;
a,b,c: string;
begin
clrscr;
assign(f, 'F:\Tp\SK_LAB1\TEXT.txt');
reset(f);
assign(e, 'F:\Tp\SK_LAB1\IZV.txt');
rewrite(e);
writeln('In progress...');
WHILE NOT Eof(f) do begin
readln(f,a);
b:=a;
readln(f,a);
If a=b then writeln(e,b)
else begin
writeln(e,b);
writeln(e,a);
end;
END;
close(f);
close(e);
writeln('Finished!');
readln;
end.
minimo71 вне форума Ответить с цитированием
Старый 04.10.2010, 19:33   #2
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Код:
uses crt;
var f,e: text;
a,b,c: string;
begin
clrscr;
assign(f, 'F:\Tp\SK_LAB1\TEXT.txt');
reset(f);
assign(e, 'F:\Tp\SK_LAB1\IZV.txt');
rewrite(e);
writeln('In progress...');
WHILE NOT Eof(f) do begin
readln(f,a);
b:=a;
read(f,a);//В одном случае read по моему здесь
If a=b then writeln(e,b)
else begin
writeln(e,b);
writeln(e,a);
end;
END;
close(f);
close(e);
writeln('Finished!');
readln;
end.
baster128 вне форума Ответить с цитированием
Старый 04.10.2010, 19:38   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
uses crt;
var f,e: text;
a,b,c: string;
begin
clrscr;
assign(f, 'F:\Tp\SK_LAB1\TEXT.txt');
reset(f);
assign(e, 'F:\Tp\SK_LAB1\IZV.txt');
rewrite(e);
writeln('In progress...');
b:='';
WHILE NOT Eof(f) do begin
readln(f,a);
if a<>b then writeln(e,a);
b:=a;
END;
END;
close(f);
close(e);
writeln('Finished!');
readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 04.10.2010, 19:47   #4
minimo71
 
Регистрация: 04.10.2010
Сообщений: 7
По умолчанию

Спасибо за помощь - заработало!
minimo71 вне форума Ответить с цитированием
Старый 04.10.2010, 19:49   #5
minimo71
 
Регистрация: 04.10.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от baster128 Посмотреть сообщение
Код:
uses crt;
var f,e: text;
a,b,c: string;
begin
clrscr;
assign(f, 'F:\Tp\SK_LAB1\TEXT.txt');
reset(f);
assign(e, 'F:\Tp\SK_LAB1\IZV.txt');
rewrite(e);
writeln('In progress...');
WHILE NOT Eof(f) do begin
readln(f,a);
b:=a;
read(f,a);//В одном случае read по моему здесь
If a=b then writeln(e,b)
else begin
writeln(e,b);
writeln(e,a);
end;
END;
close(f);
close(e);
writeln('Finished!');
readln;
end.
нет, так не работает - в выходном файле все строчки как и в входном, только разделены пустыми строками
minimo71 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка текста StillFree Microsoft Office Word 5 21.06.2009 05:59
Обработка текста JRcoker Общие вопросы Delphi 5 31.07.2008 23:35
Обработка текста Absent Помощь студентам 2 20.05.2008 23:17
Обработка текста Absent Помощь студентам 1 10.05.2008 19:56
Обработка текста GAGARIN-NEW Общие вопросы Delphi 7 06.10.2007 15:25