![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 04.01.2019
Сообщений: 1
|
![]()
Добрый день, коллеги.
Может кто столкнулся с проблемой похожей. Старый софт. Работает как есть ГОДАМИ. Описываю именно проблему. Memo1: TMemo; Memo1.Text := 'a'+#$A; ShowMessage(length(Memo1.Line[0])) – выводит 2 И вдруг!!! У редких удаленных пользователей ShowMessage(length(Memo1.Line[0])) – выводит 1 Стал удаляться #$A. Никто не сталкивался? P.S. Windows10 1903 и выше - наблюдается на всех машинах Последний раз редактировалось alexey.rosolko; 18.02.2020 в 15:53. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 07.11.2011
Сообщений: 178
|
![]()
Символ #10 (0xA) в юникоде это LF, перевод строки, который используется обычно в юникс-подобных системах, в windows-же, по соглашению, в качестве перевода строки используют пару CR LF (#13#10), которые не учитываются при измерении длинны строки и считаются одним символом. Вроде какое-то октябрьское обновление 2018 года(точно не скажу какое) в десятке исправляло ситуацию с чтением unix-овых файлов и по-идее теперь управляющий символ LF (#10) рассматривается как перевод строки. Соответственно длинна первой строки в вашем примере будет - 1 символ, а Memo1.Lines[0].Count = 2.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кто - код текстового редактора или функция операционной системы - интерпретирует управляющие символы 0x00-0x1f (например, LineFeed 0x0a)? | doriran | Свободное общение | 4 | 09.11.2019 18:52 |
TMemo | George2010 | Компоненты Delphi | 1 | 01.09.2010 17:16 |
TMemo | Valera | Помощь студентам | 14 | 04.08.2008 10:56 |
Tmemo | BlackOmen | Общие вопросы Delphi | 2 | 16.03.2008 21:03 |