![]() |
|
#8
|
|||
|
|||
![]() Да, так, только надо проверять, что в 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; Измененые и добавленые строки выделены жирным. |