0 / 0 / 1
Регистрация: 18.05.2011
Сообщений: 67
1

Написать программу которая ищет слова с определенной буквой и записывает в другой файл и при этом удаляет повторяющиеся слова

31.07.2012, 01:31. Показов 2461. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дорогие форумчане помогите написать программу.
Написать программу которая ищет слова с определенной буквой и записывает в другой файл и при этом удаляет повторяющиеся слова.
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2012, 01:31
Ответы с готовыми решениями:

Написать программу, которая считывает исходный текст этой программы и записывает в другой текстовый файл только те слова, в которых есть буква Е(все р
Написать программу, которая считывает исходный текст этой программы и записывает в другой текстовый...

Написать программу, которая ищет в тексте повторяющиеся друг за другом слова и удаляет одно из них
Помогите пожалуйста: Написать программу, которая ищет в тексте повторяющиеся друг за другом слова...

Написать программу, которая удаляет из текста пробелы между словами и записывает в массив N длину каждого слова
Написать программу, которая удаляет из текста пробелы между словами и записывает в массив N длину...

Написать программу, которая считывает текст из файла и записывает в новый файл слова, короче 5 букв
Написать программу, которая считывает текст из файла и записывает в новый файл слова, короче 5...

4
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.07.2012, 10:46 2
Можно так.
Delphi
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
49
50
51
52
53
54
55
56
57
58
59
60
var
  Form1: TForm1;
  t1,t2:TStringlist;
  p:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
const rz=[' ',',','.','?','!',';',':'];//разделители слов
                                       //добавить по тексту
var c,s,s1:string;
    a,n,i,j:integer;
begin
if length(Edit1.Text)<>1 then
 begin
  ShowMessage('Введите 1 букву для поиска');
  exit;
 end;
c:=Edit1.Text; //наша буква
t1:=TStringlist.Create;//создаем список для текста
t2:=TStringlist.Create;//и для слов
t2.Sorted:=true;//разрешим сортировать слова
t2.Duplicates:=dupIgnore;//игнорируем дубликаты
if OpenDialog1.Execute then//выбираем файл
t1.LoadFromFile(OpenDialog1.FileName);//грузим в список
p:=0;//нет нужных слов
for a:=0 to t1.Count-1 do//смотрим построчно
 begin
  s:=t1.Strings[a];
  i:=1;
  n:=Length(s);
  while i<=n do //если не разделитель и первый или перед ним разделитель
  if not(s[i] in rz)and((i=1)or(s[i-1] in rz))then
   begin
    s1:='';//новое слово
    j:=i;
    while(j<=n)and not(s[j] in rz) do
     begin
      s1:=s1+s[j]; //составляем
      j:=j+1;
     end;
    if pos(c[1],s1)>0 then //если есть буква
     begin
      p:=1;//фиксируем
      t2.Add(s1); //запишем в список
     end;
    i:=i+length(s1);//перешагиваем через слово
   end
  else i:=i+1; //пропускаем разделители
 end;
 
end;
//запись в файл
procedure TForm1.Button2Click(Sender: TObject);
begin
if p=0 then t2.Add('Слов с заданной буквой нет');
if SaveDialog1.Execute then //выбираем файл
t2.SaveToFile(SaveDialog1.FileName);//выгружаем в файл
end;
Добавлено через 1 минуту
Положи на форму Edit, 2 Button, OpenDialog, Savedialog
0
0 / 0 / 1
Регистрация: 18.05.2011
Сообщений: 67
31.07.2012, 15:29  [ТС] 3
Цитата Сообщение от Puporev Посмотреть сообщение
Можно так.
Delphi
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
49
50
51
52
53
54
55
56
57
58
59
60
var
  Form1: TForm1;
  t1,t2:TStringlist;
  p:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
const rz=[' ',',','.','?','!',';',':'];//разделители слов
                                       //добавить по тексту
var c,s,s1:string;
    a,n,i,j:integer;
begin
if length(Edit1.Text)<>1 then
 begin
  ShowMessage('Введите 1 букву для поиска');
  exit;
 end;
c:=Edit1.Text; //наша буква
t1:=TStringlist.Create;//создаем список для текста
t2:=TStringlist.Create;//и для слов
t2.Sorted:=true;//разрешим сортировать слова
t2.Duplicates:=dupIgnore;//игнорируем дубликаты
if OpenDialog1.Execute then//выбираем файл
t1.LoadFromFile(OpenDialog1.FileName);//грузим в список
p:=0;//нет нужных слов
for a:=0 to t1.Count-1 do//смотрим построчно
 begin
  s:=t1.Strings[a];
  i:=1;
  n:=Length(s);
  while i<=n do //если не разделитель и первый или перед ним разделитель
  if not(s[i] in rz)and((i=1)or(s[i-1] in rz))then
   begin
    s1:='';//новое слово
    j:=i;
    while(j<=n)and not(s[j] in rz) do
     begin
      s1:=s1+s[j]; //составляем
      j:=j+1;
     end;
    if pos(c[1],s1)>0 then //если есть буква
     begin
      p:=1;//фиксируем
      t2.Add(s1); //запишем в список
     end;
    i:=i+length(s1);//перешагиваем через слово
   end
  else i:=i+1; //пропускаем разделители
 end;
 
end;
//запись в файл
procedure TForm1.Button2Click(Sender: TObject);
begin
if p=0 then t2.Add('Слов с заданной буквой нет');
if SaveDialog1.Execute then //выбираем файл
t2.SaveToFile(SaveDialog1.FileName);//выгружаем в файл
end;
Добавлено через 1 минуту
Положи на форму Edit, 2 Button, OpenDialog, Savedialog
Как сделать функцию которая еще будет убирать дубликаты ?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.07.2012, 15:32 4
Цитата Сообщение от VLAD_VLAD Посмотреть сообщение
Как сделать функцию которая еще будет убирать дубликаты ?
Зачем? Написано же
Delphi
1
2
t2.Sorted:=true;//разрешим сортировать слова
t2.Duplicates:=dupIgnore;//игнорируем дубликаты
Дубликаты просто не будут заноситься в список.

Добавлено через 58 секунд
Если Вам нужно написать как в Паскале, как будто в Делфи нет никаких встроенных методов, то тогда конечно..
0
0 / 0 / 1
Регистрация: 18.05.2011
Сообщений: 67
31.07.2012, 15:50  [ТС] 5
Цитата Сообщение от Puporev Посмотреть сообщение
Зачем? Написано же
Delphi
1
2
t2.Sorted:=true;//разрешим сортировать слова
t2.Duplicates:=dupIgnore;//игнорируем дубликаты
Дубликаты просто не будут заноситься в список.

Добавлено через 58 секунд
Если Вам нужно написать как в Паскале, как будто в Делфи нет никаких встроенных методов, то тогда конечно..
Спасибо не заметил!
0
31.07.2012, 15:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2012, 15:50
Помогаю со студенческими работами здесь

Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв
Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие...

Написать программу , которая 1) Выводит текст на экран дисплея 2) Удаляет все пробелы 3) Записывает результат в файл Out
Помогите пожалуйста))) тут задача ,,,, создать файл Input.txt с помощью текстового редактора,...

В заданном тексте найти слова, в которые входит заданная буква, при этом не являющаяся первой буквой слова.
Всем привет! Есть такое задание: дан исходный текст на русском языке. Длина текста - не более NL...

Написать программу, которая удаляет все слова из заданной строки
Написать программу, которая удаляет все слова из заданной строки длиной более К символов.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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