SERGE_BLIZNUK
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору не... всё таки пришлось запустить, чтобы кое-что проверить... Код: procedure TForm1.Button1Click(Sender: TObject); var sl : TStringList; s : string; Row : integer; PosChar : integer; begin // в Edit1 - новый текст, который будет вставлен // в Edit2 - номер строки, в которую вставляем новый текст - нумерация начиная с 1 // в Edit3 - с какой позиции вставляем текст // получаем номер строки из Edit2 Row := 0; try Row := StrToInt(Edit2.Text); except Row := 0; end; // получаем номер символа из Edit3 PosChar := 0; try PosChar := StrToInt(Edit3.Text); except PosChar := 0; end; if (PosChar< 1) or (Row<1) then begin ShowMessage('Ошибка ввода данных - обработка прервана!'); Exit end; sl := TStringList.Create; try sl.LoadFromFile('test.txt'); if ( sl.Count <= Row ) then begin ShowMessage('Указан номер строки боьше, чем строк в файле! Обработка прервана!'); Exit end; // взяли нужную строчку s := sl[Row-1]; // номеровать строчки в Edit2 будем по человечески от 1... while Length(s) < PosChar do s := s + ' '; // удалим из строки символы, которые мы хотим заменить Delete( s, PosChar, Length(edit1.Text)); s := s + edit1.Text; sl[Row-1] := s; sl.SaveToFile('test.txt'); finally sl.Free; end; end; |
|