Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сохранение текста в файл и замена текста

11K
13 февраля 2008 года
Joe Black
49 / / 29.10.2006
Доброго времени суток!

Задача 1.
При нажатии на кнопку текст из Мемо1 сохраняется в файл C:\text.txt
Дано:
Button1 , Memo1
в Мемо1 содержится "text1"

Задача 2.
При нажатии Button2 заменить в файле "C:\text.txt" текст "text1" на "text2"
Дано:
Button2, Memo2
в Мемо2 содержится "text2"

Заранее благодарен.
246
13 февраля 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: Joe Black
Доброго времени суток!

Задача 1.
При нажатии на кнопку текст из Мемо1 сохраняется в файл C:\text.txt
Дано:
Button1 , Memo1
в Мемо1 содержится "text1"

Задача 2.
При нажатии Button2 заменить в файле "C:\text.txt" текст "text1" на "text2"
Дано:
Button2, Memo2
в Мемо2 содержится "text2"

Заранее благодарен.


 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
StringReplace(list, "text1", "text2", TReplaceFlags() << rfReplaceAll);
list->SavetoFile("C:\\text.txt");
11K
13 февраля 2008 года
Joe Black
49 / / 29.10.2006
Цитата: Joe Black

Задача 1.
При нажатии на кнопку текст из Мемо1 сохраняется в файл C:\text.txt
Дано:
Button1 , Memo1
в Мемо1 содержится "text1"


 
Код:
Memo1->Lines->SaveToFile("C:\\text.txt");

с этим сам разобрался.

Цитата: GIZMO
 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
StringReplace(list, "text1", "text2", TReplaceFlags() << rfReplaceAll);
list->SavetoFile("C:\\text.txt");


тут выдаёт ошибки при компиляции ничего не понел.
может подгружать надо что-то?

246
13 февраля 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: Joe Black

тут выдаёт ошибки при компиляции ничего не понел.
может подгружать надо что-то?



какие ошибки? приведи сообщения компиллятора, я код не тестировал кстати забыл сообщить:(

кстати надо еще опосля удалять list;

11K
13 февраля 2008 года
Joe Black
49 / / 29.10.2006
Цитата: GIZMO
какие ошибки? приведи сообщения компиллятора, я код не тестировал кстати забыл сообщить:(

кстати надо еще опосля удалять list;



[C++ Error] Unit1.cpp(23): E2034 Cannot convert 'TStringList *' to 'AnsiString'

[C++ Error] Unit1.cpp(23): E2342 Type mismatch in parameter 'S' (wanted 'const AnsiString', got 'TStringList *')

[C++ Error] Unit1.cpp(24): E2316 'SavetoFile' is not a member of 'TStringList'

8.8K
13 февраля 2008 года
Se AD WMD
165 / / 10.01.2007
Цитата:

[C++ Error] Unit1.cpp(23): E2034 Cannot convert 'TStringList *' to 'AnsiString'

[C++ Error] Unit1.cpp(23): E2342 Type mismatch in parameter 'S' (wanted 'const AnsiString', got 'TStringList *')


Для устранения этих ошибок надо не

StringReplace(list, "text1", "text2", TReplaceFlags() << rfReplaceAll);

а StringReplace(list->Txet, "text1", "text2", TReplaceFlags() << rfReplaceAll);

Цитата:

[C++ Error] Unit1.cpp(24): E2316 'SavetoFile' is not a member of 'TStringList'


а это потомушто надо не

list->SavetoFile("C:\\text.txt");

а

list->SaveToFile("C:\\text.txt");

11K
13 февраля 2008 года
Joe Black
49 / / 29.10.2006
 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
StringReplace(list->Text, "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->SaveToFile("C:\\text.txt");

теперь ошибок не выдаёт, но замена текста не происходит.....
8.8K
13 февраля 2008 года
Se AD WMD
165 / / 10.01.2007
В цикле проходи по каждой строчке

(Не помню точно) вроде так:
 
Код:
for(int x=0;x<list->Count;x+=1)
StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll);
11K
13 февраля 2008 года
Joe Black
49 / / 29.10.2006
Цитата: Se AD WMD
В цикле проходи по каждой строчке

(Не помню точно) вроде так:
 
Код:
for(int x=0;x<list->Count;x+=1)
StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll);


Пробовал 2мя способами

 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
for(int x=0;x<list->Count;x+=1)
StringReplace(list->Strings[0], "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->SaveToFile("C:\\text.txt");
 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
for(int x=0;x<list->Count;x+=1)
StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->SaveToFile("C:\\text.txt");

не работает, без изменений...
1
13 февраля 2008 года
kot_
7.3K / / 20.01.2000
Цитата: Joe Black
Пробовал 2мя способами
 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
for(int x=0;x<list->Count;x+=1)
StringReplace(list->Strings[0], "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->SaveToFile("C:\\text.txt");
 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
for(int x=0;x<list->Count;x+=1)
StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->SaveToFile("C:\\text.txt");

не работает, без изменений...



Айяяяяй. Сил хватает только читать форум? Нажать Ф1 и справку прочесть - сил не хватает?

 
Код:
for(int x=0;x<list->Count;x+=1)
list->Add(StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll));
list->SaveToFile("C:\\text.txt");

Посмотрите на результат.
1
13 февраля 2008 года
kot_
7.3K / / 20.01.2000
Или например так:
 
Код:
String tmp = "";
for(int x=0;x<list->Count;x+=1){
tmp = StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->Delete(x);
list->Insert(x,tmp);
}
1
13 февраля 2008 года
kot_
7.3K / / 20.01.2000
Цикл кстати должен выглядеть так:
 
Код:
for(int x=0;x<list->Count;x++)
246
13 февраля 2008 года
GIZMO
1.8K / / 30.07.2004
 
Код:
StringReplace(list, "text1", "text2", TReplaceFlags() << rfReplaceAll);

это я херню написал, торопился на обед:)
11K
13 февраля 2008 года
Joe Black
49 / / 29.10.2006
Цитата: kot_
Айяяяяй. Сил хватает только читать форум? Нажать Ф1 и справку прочесть - сил не хватает?
 
Код:
for(int x=0;x<list->Count;x+=1)
list->Add(StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll));
list->SaveToFile("C:\\text.txt");

Посмотрите на результат.



Попробовал код:

 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
for(int x=0;x<list->Count;x+=1)
list->Add(StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll));
list->SaveToFile("C:\\text.txt");

зависает программа.
А если так:
 
Код:
TStringList* list = new TStringList;
for(int x=0;x<list->Count;x+=1)
list->Add(StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll));
list->SaveToFile("C:\\text.txt");

то документ становится пустым, но прогресс очевиден, но не достигнут результата.
11K
13 февраля 2008 года
Joe Black
49 / / 29.10.2006
 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
String tmp = "";
for(int x=0;x<list->Count;x++);
tmp = StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->Delete(x);
list->Insert(x,tmp);


Ошибку выдаёт [C++ Error] Unit1.cpp(24): E2451 Undefined symbol 'x'
1
14 февраля 2008 года
kot_
7.3K / / 20.01.2000
Цитата: Joe Black
 
Код:
TStringList* list = new TStringList;
list->LoadFromFile("C:\\text.txt");
String tmp = "";
for(int x=0;x<list->Count;x++);
tmp = StringReplace(list->Strings[x], "text2", "text1", TReplaceFlags() << rfReplaceAll);
list->Delete(x);
list->Insert(x,tmp);


Ошибку выдаёт [C++ Error] Unit1.cpp(24): E2451 Undefined symbol 'x'


Посмотри на свой код и посмотри на мой.

Цитата:

это я херню написал, торопился на обед


А ему религия не позволяет в справку посмотреть?
З.Ы. Так как приведенный код полностью рабочий, и тема исчерпана, она закрывается. автору рекомендуется не только смотреть в справку но и внимательно копипастить.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог