С Новым годом! Форум программистов, компьютерный форум, киберфорум
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. Показов 3751. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru