Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 17.02.2020, 18:56   #1
alexey.rosolko
Новичок
Джуниор
 
Регистрация: 04.01.2019
Сообщений: 1
По умолчанию TMemo + LineFeed (#$A)

Добрый день, коллеги.

Может кто столкнулся с проблемой похожей. Старый софт. Работает как есть ГОДАМИ. Описываю именно проблему.

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.
alexey.rosolko вне форума Ответить с цитированием
Старый 19.02.2020, 23:54   #2
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 100
По умолчанию

Символ #10 (0xA) в юникоде это LF, перевод строки, который используется обычно в юникс-подобных системах, в windows-же, по соглашению, в качестве перевода строки используют пару CR LF (#13#10), которые не учитываются при измерении длинны строки и считаются одним символом. Вроде какое-то октябрьское обновление 2018 года(точно не скажу какое) в десятке исправляло ситуацию с чтением unix-овых файлов и по-идее теперь управляющий символ LF (#10) рассматривается как перевод строки. Соответственно длинна первой строки в вашем примере будет - 1 символ, а Memo1.Lines[0].Count = 2.
DIONISKA вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто - код текстового редактора или функция операционной системы - интерпретирует управляющие символы 0x00-0x1f (например, LineFeed 0x0a)? doriran Свободное общение 4 09.11.2019 18:52
TMemo George2010 Компоненты Delphi 1 01.09.2010 16:16
TMemo Valera Помощь студентам 14 04.08.2008 09:56
Tmemo BlackOmen Общие вопросы Delphi 2 16.03.2008 21:03


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840