Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
Сообщений: 156
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто - код текстового редактора или функция операционной системы - интерпретирует управляющие символы 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