Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
1-1150469495
Бормодед
2006-06-16 18:51
2006.07.30
Screen.PixelsPerInch


1-1150732226
Dust
2006-06-19 19:50
2006.07.30
Определить размер буфера по указателю. Возможно?


15-1151417957
ArtemESC
2006-06-27 18:19
2006.07.30
Как узнать где SoundBlaster: порт, DMA-канал ...


15-1151835771
Socers'
2006-07-02 14:22
2006.07.30
Звук


5-1136560770
cp.Silver
2006-01-06 18:19
2006.07.30
Расширенный TTreeView




   Наверх