IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задача о замене слов в файле
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский
Реальное имя: Галя

Репутация: -  0  +


Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст.
Слова в тексте разделены пробелами и знаками препинаниями.
Файл f2 содержит не более 30 слов, которые разделены запятыми.
Эти слова образуют пары: каждое второе является синонимом первого.
Заменить в файле f1 те слова, которые можно, их синонимами.
Результат поместить в новый файл.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Рекомендую описать файлы как file of char, а потом читать их посимвольно, заполняя слово пока идут подряд буквы. При встече первого небуквенного символа:
- в случае f1: сверять слово со словарем синонимов;
- в случае f2: заносить слово в словарь синонимов.

То есть примерно такая конструкция для чтения:
const
Letters=['A'..'Z','a'..'z'];
var
f:file of char;
c:char;
s:string;
...
s:='';
while not EoF(f) do begin
Read(f,c);
if c in Letters then s:=s+c else if s<>'' then begin
{тут делаем, что надо}
s:=''
end
end;

Разумеется, сначала читаем f2, а потом f1.
Для словаря нужно завести массив строк, можно двумерный - для наглядности алгоритма.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский
Реальное имя: Галя

Репутация: -  0  +


Если файл описывать как char, то он не находит его и не читает, а если переделать в String все то не работает.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(tryno @ 20.12.2006 18:20) *

Если файл описывать как char, то он не находит его и не читает

Поподробнее, пожалуйста. Приведи свою программу и файл данных.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский
Реальное имя: Галя

Репутация: -  0  +


Цитата(Lapp @ 21.12.2006 7:00) *

Поподробнее, пожалуйста. Приведи свою программу и файл данных.

Пока что так :


program ten;
uses crt;
const
Letters=['A'..'Z','a'..'z'];
var
f:file of char;
c:char;
s:string;
begin
assign(f,'c:\f1.file');
reset(f);
s:='';
while not eof(f) do begin
read(f,c);
if c in Letters then s:=s+c else
if s<>' ' then begin

s:=' ';
end;
end;
write(' ');
writeln(s);
end.



М
Пользуемся тегами


Файл данных:
Прикрепленный файл  f1.txt ( 25 байт ) Кол-во скачиваний: 515


Сообщение отредактировано: klem4 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 17:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name