@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
, проверяем, не пустая ли строка, а затем проверяем последний символ строки на равенство символу перевода строки. Если это так, то мы показываем сообщение с номером строки, в которой обнаружен конец строки.
@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). Если такая последовательность символов найдена, показываем сообщение с позицией конца строки.