Главная страница
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
Время: 0.025 c
2-1152381945
VitV
2006-07-08 22:05
2006.07.30
Interbase 6.0.1 максиальный размер файла.


15-1151646510
Иксик
2006-06-30 09:48
2006.07.30
Красиво


2-1152547267
Unknowing
2006-07-10 20:01
2006.07.30
Delphi+ Excel


2-1152169894
Elfebet
2006-07-06 11:11
2006.07.30
Когда мышка покидает форму фокус передается предыдущему окну.


15-1151892449
vidiv
2006-07-03 06:07
2006.07.30
Как воспитать в себе чувство ответственности и трудолюбия?