Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2

Как найти и заменить текст в Memo или в txt-файле?

06.03.2011, 19:07. Показов 3800. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как наити и заменить в мемо или в .txt фаиле текст? у меня есть .txt фаил... содержит очин длинний текст... как наити в нём конкретний текст и заменить её текстом из Edit?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.03.2011, 19:07
Ответы с готовыми решениями:

Найти и заменить слово в txt файле (как в блокноте)
Наити и заменить слово в txt файле (как в блокноте) Помогите реализовать (у самого очень мало опыта). :cry: Или хотя бы куда копать....

Как найти текст в файле и возвратить 0 или 1 в зависимости от того,найдено или нет?
bool fnd(char* fn,string stf) { string s; ifstream ifs(fn); while (!ifs.eof()) { getline(ifs,s); ...

Найти текст в файле *.txt
Добрый день имеется файл *.txt в первой строке написанно 1 X = 12; Y = 13 как найти 12 и 13 ? Заранее спасибо.

15
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
06.03.2011, 19:46
1. загрузить текст в какой-нибудь буфер
2. найти текст
3. заменить
4. сохранить в файл
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
06.03.2011, 19:54  [ТС]
LK,
Мне очен нужен код. виложите код пожалуиста... идеа у меня тоже такая но как реализироват её не знаю...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
06.03.2011, 20:06
у меня нет готового кода
1. Загрузите текст из файла в StringList
2. Например, в Edit вводите строку для поиска
3. Потом пройдитесь циклом по StringList и при помощи StringReplace заменяйте строку
4. Сохраните StringList в файл
Практическая реализация замены обсуждалась здесь неоднократно и совсем даже недавно.
1
Фрилансер
49 / 34 / 7
Регистрация: 12.01.2010
Сообщений: 186
Записей в блоге: 1
06.03.2011, 20:12
Как то давно писал лабу по поиску и замене текста в RichEdit, вот код:
C++
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
   int FoundAt, StartPos, TqEnd;
   TSearchTypes Option;
 
   StartPos = RichEdit1->SelStart;
   if( RichEdit1->SelStart )
   {
      StartPos += RichEdit1->SelLength;
   }
   TqEnd = RichEdit1->Text.Length() - StartPos;
   if( FindDialog1->Options.Contains(frWholeWord) )
   {
      Option << stWholeWord;
   }
   else
   {
      Option >> stWholeWord;
   }
 
   if( FindDialog1->Options.Contains(frMatchCase) )
   {
      Option << stMatchCase;
   }
   else
   {
      Option >> stMatchCase;
   }
   FoundAt = RichEdit1->FindTextA(FindDialog1->FindTextA, StartPos, TqEnd, Option);
   if( FoundAt != -1 )
   {
      RichEdit1->SetFocus( );
      RichEdit1->SelStart = FoundAt;
      RichEdit1->SelLength = FindDialog1->FindTextA.Length();
   }
   else
   {
      ShowMessage( "Текст  " + FindDialog1->FindTextA + "  не найден!!!" );
   }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   FindDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ReplaceDialog1Replace(TObject *Sender)
{
      if( ReplaceDialog1->Options.Contains(frReplace) )
      {
        RichEdit1->SelText = ReplaceDialog1->ReplaceText; // ShowMessage( "Текст " + ReplaceDialog1->FindTextA + " не найден!!!" );
         return;
      }
 
      if( ReplaceDialog1->Options.Contains(frReplaceAll) )
      {
         RichEdit1->SelText = ReplaceDialog1->ReplaceText;
         ReplaceDialog1Find(Sender);
      }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ReplaceDialog1Find(TObject *Sender)
{
 
   int FoundAt, StartPos, TqEnd;
   TSearchTypes Option;
 
   StartPos = RichEdit1->SelStart;
   if( RichEdit1->SelStart )
   {
      StartPos += RichEdit1->SelLength;
   }
   TqEnd = RichEdit1->Text.Length() - StartPos;
   if( ReplaceDialog1->Options.Contains(frWholeWord) )
   {
      Option << stWholeWord;
   }
   else
   {
      Option >> stWholeWord;
   }
 
   if( ReplaceDialog1->Options.Contains(frMatchCase) )
   {
      Option << stMatchCase;
   }
   else
   {
      Option >> stMatchCase;
   }
   FoundAt = RichEdit1->FindTextA(ReplaceDialog1->FindTextA, StartPos, TqEnd, Option);
   if( FoundAt != -1 )
   {
      RichEdit1->SetFocus( );
      RichEdit1->SelStart = FoundAt;
      RichEdit1->SelLength = ReplaceDialog1->FindTextA.Length();
      ReplaceDialog1Replace(Sender);
   }
   else
   {
      ShowMessage( "! Текст  " + ReplaceDialog1->FindTextA + "  не найден!!!" );
      return;
   }
 
   // if( ReplaceDialog1->Options.Contains(frReplaceAll) )
   
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   ReplaceDialog1->Execute();
}
//---------------------------------------------------------------------------
2
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
06.03.2011, 20:47  [ТС]
Код правилно записиваю толко FindTextA заменаю FindTextW ом... ато ругается компилятор . но всё равно не может наити текст как видите на рисунке...
Миниатюры
Как найти и заменить текст в Memo или в txt-файле?  
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
06.03.2011, 22:13
можно просто FindText

Добавлено через 13 минут
ага, не работает , BriGaDir_89'а к ответу
1
Фрилансер
49 / 34 / 7
Регистрация: 12.01.2010
Сообщений: 186
Записей в блоге: 1
07.03.2011, 00:44
Цитата Сообщение от LK Посмотреть сообщение
ага, не работает , BriGaDir_89'а к ответу
Сами вы не работаете!!! У меня все работает!!! И писал это я в C++Builder 6, а не в Builder х** знает что ...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.03.2011, 02:14
не надо нервничать, а надо предоставлять код, который работает
и хамить тоже не стОит.
Миниатюры
Как найти и заменить текст в Memo или в txt-файле?  
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2011, 02:44  [ТС]
Цитата Сообщение от BriGaDir_89 Посмотреть сообщение
а не в Builder х**
Мдааакс... Значит емаркадеро должен уволить своих девелоперов...

LK,
Чё он нервничает не понимаю ...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.03.2011, 04:24
Цитата Сообщение от Programmer. Посмотреть сообщение
1. Мдааакс... Значит емаркадеро должен уволить своих девелоперов...
2.
3. Чё он нервничает не понимаю ...
1. Вывод поспешный, потому как оно ищет и даже меняет, правда, не ищет часть слова, но это задается флагами, ну и код сам по себе элементарный, есть косяки с флагами, да и юникод...
2. ну, это объязательно
3. а кто его знает , мы чуток пошутили, а он всерьёз
воспринял
Миниатюры
Как найти и заменить текст в Memo или в txt-файле?   Как найти и заменить текст в Memo или в txt-файле?  
0
Фрилансер
49 / 34 / 7
Регистрация: 12.01.2010
Сообщений: 186
Записей в блоге: 1
07.03.2011, 11:11
Цитата Сообщение от LK Посмотреть сообщение
не надо нервничать, а надо предоставлять код, который работает
и хамить тоже не стОит.
Это преъява???
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2011, 14:32  [ТС]
LK, Понял вчём вскриволас таинa...


BriGaDir_89,
LK,
А можно так сделат: наитй текст спомощию Edit1 и заменит текст Edit2?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.03.2011, 19:32
Цитата Сообщение от Programmer. Посмотреть сообщение
[b]1. Понял вчём вскриволас таинa...
2. А можно так сделат: наитй текст спомощию Edit1 и заменит текст Edit2?
1. Ну и в чем?
2. Без диалогов ? можно - смотри начало темы. Если с диалогами, то это смысла не имеет, но можно делать:
C++
1
FindDialog1->FindText = Edit->Text;
Цитата Сообщение от BriGaDir_89
Это преъява???
см. вишее.
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2011, 22:35  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
1. Ну и в чем?
Втом что перед поискои должен кликнут в мемо
Цитата Сообщение от LK Посмотреть сообщение
. Без диалогов ? можно - смотри начало темы. Если с диалогами, то это смысла не имеет, но можно делать:
Код C++1 FindDialog1->FindText = Edit->Text;
сп попробуию
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.03.2011, 22:57
Цитата Сообщение от Programmer. Посмотреть сообщение
Втом что перед поискои должен кликнут в мемо
можно и так, а можно просто добавить в код Memo->SetFocus();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2011, 22:57
Помогаю со студенческими работами здесь

Найти строки в txt файле и заменить их на значение из массива
Имеется заданный в php массив: $a=Array ('текст0', 'текст1', 'текст2', 'текст3', 'текст4'); Имеется file.txt без пробелов:...

Как в непустом Вордовском файле найти необходимый мне текст и заменить его на результат работы программы
Всем доброго времени суток. Суть вопроса такова. На форме, к примеру, 2 баттона с текстом и 1 баттон обрабатывает событие клика. как,...

Как изменить текст в файле .txt?
Private Sub Form_Load() If Dir$(&quot;C:\tmp\amd.txt&quot;, vbNormal) = &quot;&quot; Then Dim f As Integer f = FreeFile Open &quot;C:\tmp&quot; &amp; &quot;\amd.txt&quot; For...

В текстовом файле input.txt записан русский текст. Найти в тексте слова
В текстовом файле input.txt записан русский текст. Найти в тексте слова, содержащие две одинаковые буквы подряд, записать их заглавными...

Нужно заменить строку в файле text.txt словами из другого файла words.txt
Допустим в файле words.txt есть какие-то слова ,например : #один,#два,#три. И есть файл text.txt,где есть слова: один,два,три,четыре,пять...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru