Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

Найти и заменить   Найти похожие ветки 

 
Afonya   (2006-07-07 12:19) [0]

Добрый день, мастера! Подскажите студенту.
Пытаюсь найти строку в текстовом файле  и заменить значение.

Есть текстовый файл примерно такого вида:

user = 2
VasyaPupkin = 7890
sdata = 78.78

user = 4
VasyaPupkin = 7890
sdata = 45.8904

и т.д., таких секций может быть много, а может быть одна.

Нужно поиском найти первую строку начинающуюся с VasyaPupkin, что после равно запомнить в переменную

Затем у пользователя взять из Edit новое значение для строки VasyaPupkin = и заменить им старое во всем файле...

пытался сделать так:

   FileName:=ExtractFilePath(Application.ExeName)+"1.txt";

   with TStringList.Create do
     begin
     try
       LoadFromFile(FileName);
       
        Sort;
       while Find(Edit1.Text+" value", i) do
         Strings[i] := edit2.Text+" value";
       
       for i := 0 to Pred(Count) do
         if Strings[i] = edit1.text then
           Strings[i] := Edit2.text;
       SaveToFile(FileName);
     finally
       Free;
     end;
   end;

но он сравнивает только всю строку.

Плиииз напишите функцию если не трудно. Буду очень признателен.


 
PSPF2003 ©   (2006-07-07 12:36) [1]

Первая строка StrPos
А значение VasyaPupkin это длинна строки минус VasyaPupkin плюс =
Смотри Паскаль функции по работе со строками.


 
Юрий Зотов ©   (2006-07-07 12:53) [2]

var
 Value: integer;

with TStringList.Create do
try
 LoadFromFile(FileName);
 Value := StrToInt(Values[Names[IndexOfName(Edit1.Text)]]);
 Text := StringReplace(Text, Edit1.Text, Edit2.Text, [rfReplaceAll]);
 SaveToFile(FileName);
finally
 Free;
end;


 
StriderMan ©   (2006-07-07 12:58) [3]


> Values[Names

если равно между именем и значением окружено пробелами, то не работает эта конструкция, сам наступал на такую граблю.


 
Ivolg ©   (2006-07-07 13:57) [4]

>Afonya

Тебе наверное надо сохранить данные в программе, а потом снова загрузить их ?


 
Ketmar ©   (2006-07-07 14:03) [5]

а не надо пробелы ставить.


 
Afonya   (2006-07-07 14:07) [6]

Всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2006.07.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 1.052 c
6-1142854523
piople
2006-03-20 14:35
2006.07.30
ISAPI(dll) разделение общих ресурсов в копиях dll


3-1148455210
Бульбаш
2006-05-24 11:20
2006.07.30
Проблемы с цветом в гриде под Win98


2-1152625504
Grotesque
2006-07-11 17:45
2006.07.30
Небольшой вопрос


3-1148378856
Stanislav
2006-05-23 14:07
2006.07.30
Объединение таблиц с разных папок


1-1150542142
leonidus
2006-06-17 15:02
2006.07.30
Подскажите аналог chr созвращающий WideChar