Конференция "Начинающим" » Как удалить символ в определённой строке в TMemo [D6, XP]
 
  • Andrey Konstantinov (03.02.19 23:46) [0]
    Доброго времени суток.
    В mmE: TMemo работаю со строками:
       with mmE.Lines do
         for iw := 0 to Count-1 do
         begin //--for
           sd := Strings[iw]; //Берём строку из mmE
           .......
           if pos(';',sd) then Delete(sd,1,1); //Ошибка

    Delete является методом Lines (mmE.Lines.Delete)
    Как удалить символ из строки?
  • Германн © (04.02.19 02:58) [1]
    Какой тип имеет переменная sd?
    Что написано в сообщении об ошибке?
    Delete в данном синтаксисе кода "является" (Является чёрт во сне! Старшина Семибаб) процедурой из модуля System http://docwiki.embarcadero.com/Libraries/XE7/en/System.Delete
  • KSergey © (04.02.19 09:18) [2]
    Для строки с индексом 1 вот так - работает, проверил
    Дальше уже для вашего случая доработайте

    var
     S: String;

    begin
     if pos(';', Memo1.Lines[1]) > 0 then
       begin
         S := Memo1.Lines[1];
         Delete(S, 1, 1);
         Memo1.Lines[1] := S;
       end;


    И никаких with, блин!! никакой радости они на дают в подавляющем большинстве случаев, только путают.
  • ухты © (04.02.19 09:51) [3]
    так должно работать в вашем случае - if pos(';',sd) then System.Delete(sd,1,1);
    но с with, как и сказали, лучше не иметь дел
  • Andrey K (04.02.19 12:46) [4]
    Ошибку выдаёт: Incompatible types: 'Integer' and 'String', соответственно.
    sd: string;
    Спасибо всем за советы.
    ухты, вам отдельное спасибо. Через System. Delete(sd,1,1); заработало.
    Обработчик, где эта мутная история, очень большой и очень старый. Появилась необходимость его дополнить некоторыми действиями. Переделывать и разбираться в нём нет желания. Он ещё, фиг знает сколько отработает в таком виде.
    На будущее, все советы, конечно пригодятся.
 
Конференция "Начинающим" » Как удалить символ в определённой строке в TMemo [D6, XP]
Есть новые Нет новых   [118691   +24][b:0][p:0.001]