Тема: Файл
Показать сообщение отдельно
  #8  
Старый 08.10.2008, 19:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да, так, только надо проверять, что в Edit1 и в Edit2 что-то есть, а так же кол-во символов, т.к. приведенный способ позволяет заменить исключительно один символ, если надо менять один символ на несколько или несколько на несколько, то надо делать подругому.

Код:
var
  S : TStringList;
  A : String;
  C1, C2 : Char
begin
  If Length(Edit1.Text) <> 1 
    Then Raise Exception.Create('Первый символ для замены пустой или их больше 1');
  If Length(Edit2.Text) <> 1 
    Then Raise Exception.Create('Второй символ для замены пустой или их больше 1');
  C1 := Copy(Edit1.Text,1,1)[1];
  C2 := Copy(Edit2.Text,1,1)[1];
  S := TStringList.Create;
  Try
    S.LoadFromFile(AFileName); // В переменной AFileName - полное имя файла
    If S.Count < 18 Then Raise Exception.Create('Строк меньше чем 18');
    If Length(S[17]) < 22 Then Raise Exception.Create('В строке 18  меньше чем 22 символа');
    A := S[17]; // Нумерация строк идет с 0
    A[21] := C1;
    A[22] := C2;
    S[17] := A;
    S.SaveToFile(AFileName);
  Finally
    S.Free;
  End;
end;

Измененые и добавленые строки выделены жирным.
Ответить с цитированием