Проблемы с окончаниями строк между Delphi и веб-приложением - PullRequest
0 голосов
/ 27 сентября 2018

Мы находимся в процессе перевода ряда приложений Delphi на веб-интерфейс, и тем временем некоторые приложения работают в обоих.

У нас есть ситуация, когда веб-приложение может правильно прочитать записанные разрывы строк.приложением Delphi, но приложение Delphi игнорирует разрывы строк при сохранении текста в веб-приложении.

Насколько я могу сказать, приложение Delphi записывает #$D#$A в конце любой строки.В таблице базы данных они выглядят как CR LF.

Когда веб-приложение сохраняет блок сохранения текста, разрывы строк становятся #$A при чтении Delphi.В базе данных они все еще кажутся CR LF

Мысли?

1 Ответ

0 голосов
/ 27 сентября 2018

Вы говорите " база данных показывает", но на самом деле это может быть инструмент, который вы используете для проверки этой базы данных.У меня возникла проблема с Oracle и разработчиком PL / SQL, где разрывы строк в базе данных были фактически переносами строк в Unix (просто перевод строки, LF, $ A, \ n, какое бы представление вы ни выбрали), но инструмент базы данных перевел это наклиент, на котором он работал (Windows), поэтому он показал их как CR LF.Ваш инструмент также может делать это.

Delphi не выполняет этот магический перевод и фактически читает их как просто LF.

Таким образом, чтобы получить определенный вид разрывов строк, вы должны либо сохранять значения последовательно, либо преобразовывать их на лету, когда читаете их обратно из базы данных.

В Delphi вы можете использовать функцию AdjustLineBreaks для этого преобразования, либо перед сохранением, либо после извлечения (или обоих).

...