Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 24.10.2010
Сообщений: 3
1

Заменить в файле слова синонимами

24.10.2010, 17:15. Показов 2794. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
даны 2 текстовых файла f1 и f2 файл f1 содержит произольный текст. слова в файле разделены пробелами и знаками препинания. файл f2 содержит не более 30 слов, которые разделены запятыми, эти слова образуют пары: каждое второе является синонимом первого. заменить в файле f1 те, которые можно, их синонимами. Результат поместить в новый файл.

Задача сложная, кто может помогите плз.

Добавлено через 48 минут
Цитата Сообщение от Largess92 Посмотреть сообщение
даны 2 текстовых файла f1 и f2 файл f1 содержит произольный текст. слова в файле разделены пробелами и знаками препинания. файл f2 содержит не более 30 слов, которые разделены запятыми, эти слова образуют пары: каждое второе является синонимом первого. заменить в файле f1 те, которые можно, их синонимами. Результат поместить в новый файл.

Задача сложная, кто может помогите плз.
суть задачи понял. не понимаю как создать массив слов из данного файла без знаков препинания. то есть допустим из ",,,,привет,!?" сделать "привет"
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2010, 17:15
Ответы с готовыми решениями:

Найти в файле F1 все заменяемые слова и заменить их на соответствующие заменяющие слова
1.Задан типизированный файл с целочисленными компонентами и произвольное целое число b. Если для...

Текстовые файлы. Заменить в файле f те слова, которые можно, их синонимами
Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены...

Переписать текст в файл output.txt, заменив, где возможно, слова их синонимами
Файл input.txt содержит несколько строк текста. Слова в тексте могут разделяться пробелами и...

Заменить в файле каждое вхождение слова p словом q
Дан файл F, заменить в нём каждое вхождение слова p словом q. Записать полученный текст в файл G.

2
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.10.2010, 17:34 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

const rz=[' ','.','.','?','!'];//добавь все что относится к разделителям
......................
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
n:=0;
while not eof(f1) do
 begin
  readln(f1,s);
  for i:=1 to length(s) do
  if s[i] ib rz then s[i]:=',';//заменим все разделители на запятые
  s:=s+',';//добавим запятую в конец
  while pos(',,',s)>0 do//пока есть 2 запятые рядом
  delete(s,pos(',,',s),1);//1 удалим
  if s[1]=',' then delete(s,1,1);//если первая запятая, удалим ее
//получим строку типа слово,слово,слово,слово
//сейчас ее слова легко собирать в массив
  while pos(',',s)>0 do
   begin
    n:=n+1;
    mas[n]:=copy(s,1,pos(',',s)-1);
    delete(s,1,pos(',',s));
   end;
 end;
Можно и по другому, но мне так больше нравится...
0
0 / 0 / 1
Регистрация: 24.10.2010
Сообщений: 3
24.10.2010, 18:52  [ТС] 3
спасибо. немного по другому сделал,кривовато. хотел универсальную процедурку сделать для различных случаев... но вот код если надо кому то будет

Добавлено через 1 минуту
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
type mas_sl=array[1..100] of string;
     var f1,f2,f3:text; j,i:integer; z1,z2:byte;
     a1:array[1..100] of string; a2:array[1..100] of string; h:char;
     procedure from_file_to_mas(var f:text; var x:mas_sl; var n:byte);
               var b,c:char;
               begin
                    reset(f); c:=' '; n:=1; x[1]:='';
                    while not eof(f) do begin
                    b:=c;
                    read(f,c);
                    if (c<>' ') and(pos(c,'!,.?()*:;"[]')=0) then x[n]:=x[n]+c else
                    if (b<>' ') and (pos(c,'!,.?()*:;"[]')=0) then begin inc(n);
                                         x[n]:='';
                    end;
                    end;
                    end;
     begin
          assign(f1,'');
          assign(f2,'');
          assign(f3,'');
          reset(f1);
          reset(f2);
          rewrite(f3);
          from_file_to_mas(f1,a1,z1);
          a2[1]:=''; i:=1; z2:=1;
          while not eof(f2) do begin
          read(f2,h);
          if h<>',' then
          a2[i]:=a2[i]+h else begin
                         inc(i);
                         a2[i]:='';
                         z2:=z2+1;
                         end;
                         end;
          for i:=1 to z1 do
              for j:=1 to z2 do begin
              if a1[i]=a2[j]then begin write(f3,a2[j+1]);
                                       write(f3,',');
                                       end
              else if a1[i]=a2[j+1] then begin write(f3,a2[j]);
                                            write(f3,',');
                                            end;
              j:=j+1;
              end;
              close(f1);
              close(f2);
              close(f3);
              end.
0
24.10.2010, 18:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2010, 18:52
Помогаю со студенческими работами здесь

Заменить в файле те слова, которые можно, их синонимами
Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены...

Файл: Заменить в файле все возможные слова их синонимами
Программу необходимо написать в Delphi. Даны 2 текстовых файла f1 и f2. Файл f1 содержит...

Файл: Заменить в файле все возможные слова их синонимами
Даны 2 текстовых файла. Первый файл содержит произвольный текст, а слова в тексте разделены...

Разработать программу «Синонимы», которая позволяла бы по возможности заменить в файле f1 слова их синонимами из файла f2
народ кто может помочь????Даны 2 текстовых файла f1 и f2. Файл f1 содержит произвольный текст....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru