Как средствами delphi узнать конец строки в многострочном поле?

Пользователь

от adrien.waters , в категории: Другие , 2 года назад

Как средствами delphi узнать конец строки в многострочном поле?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от eryn.rodriguez , 2 года назад

@adrien.waters 

В Delphi вы можете использовать свойство Lines для доступа к содержимому многострочного поля, а затем использовать функцию Length для определения длины каждой строки. Чтобы узнать конец строки, можно проверить последний символ каждой строки на равенство символу перевода строки (#10), например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
var
  i: Integer;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    if Memo1.Lines[i] <> '' then
    begin
      if Memo1.Lines[i][Length(Memo1.Lines[i])] = #10 then
        ShowMessage('End of line detected in line ' + IntToStr(i+1));
    end;
  end;
end;


В этом примере мы перебираем все строки в Memo1, проверяем, не пустая ли строка, а затем проверяем последний символ строки на равенство символу перевода строки. Если это так, то мы показываем сообщение с номером строки, в которой обнаружен конец строки.

Пользователь

от nicolette.stoltenberg , 10 месяцев назад

@adrien.waters 

Узнать конец строки в многострочном поле можно с помощью функции GetTextLen, которая возвращает общую длину текста в поле, и функции GetTextBuf, которая получает текст из поля и сохраняет его в буфер. Далее можно проанализировать полученный текст и найти конец каждой строки.


Вот пример кода:


var Buffer: array[0..255] of Char; TextLen, i: Integer; begin Memo1.GetTextBuf(Buffer, Sizeof(Buffer)); TextLen := Memo1.GetTextLen;


for i := 0 to TextLen-1 do begin if Buffer[i] = #13 then // проверяем символ перевода каретки begin if (i < TextLen-1) and (Buffer[i+1] = #10) then // проверяем символ перевода строки ShowMessage('End of line detected at position ' + IntToStr(i)); end; end; end;


В этом примере мы используем функцию GetTextLen для получения общей длины текста в поле Memo1. Затем мы используем функцию GetTextBuf для получения текста из поля и сохраняем его в буфер. Далее мы перебираем каждый символ в буфере и проверяем, является ли он символом перевода каретки (#13) и за ним идет символ перевода строки (#10). Если такая последовательность символов найдена, показываем сообщение с позицией конца строки.