Чтение текстового файла в Memo или StringList

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Чтение текстового файла в Memo или StringList

Сообщение Владимир »

Всем доброго!
Под Windows столкнулся с проблемой чтения 1-й строки текстового файла - в Memo вначале вставляется апостроф и пара символов псевдографики, а затем собственно строка. Под Linux все Ок. Win10, Lazarus 1.6.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Исходя из того, что ровно три символа, это скорее всего вот эта вещь:
https://ru.wikipedia.org/wiki/%D0%9C%D0 ... 0%BE%D0%B2

...читаемый файл то просматривался каким-нибудь шестнадцатиричным редактором? Скорее всего, просто честно прочитано его начало.
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

SSerge писал(а):Исходя из того, что ровно три символа, это скорее всего вот эта вещь:
https://ru.wikipedia.org/wiki/%D0%9C%D0 ... 0%BE%D0%B2

...читаемый файл то просматривался каким-нибудь шестнадцатиричным редактором? Скорее всего, просто честно прочитано его начало.

BOM такой BOM... Раньше такого не наблюдалось, вроде. По-хорошему, и Memo, и StringList должны отсекать это при чтении...
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Владимир писал(а):По-хорошему, и Memo, и StringList должны отсекать это при чтении...


хорошее - оно не здесь. :cry: Это отсекается при чтении только в исполняющей среде .net
RTL freepascalэя в отношении данного префикса весьма рудиментарна, а имеющиеся функции для работы с BOM... как бы мягче сказать... пока написаны без малейшего понимания, с чем им приходится иметь дело.
Посему только хардкор - после чтения анализировать это и убирать вручную. (собственным кодом то есть)
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

SSerge писал(а):
Владимир писал(а):По-хорошему, и Memo, и StringList должны отсекать это при чтении...


хорошее - оно не здесь. :cry: Это отсекается при чтении только в исполняющей среде .net
RTL freepascalэя в отношении данного префикса весьма рудиментарна, а имеющиеся функции для работы с BOM... как бы мягче сказать... пока написаны без малейшего понимания, с чем им приходится иметь дело.
Посему только хардкор - после чтения анализировать это и убирать вручную. (собственным кодом то есть)

Да Вы, батенька, оптимист!
Ответить