FPC 3.0 RC1 announced

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

runewalsh писал(а):В делфи-варианте любая операция со строкой — потенциальное преобразование, о том и речь.

Только если использовать строки разных типов.

runewalsh писал(а):Я надеюсь, это отключаемо?

Нет конечно, как не отключаемы и преобразования между ShortString и AnsiString, AnsiStrting и WideString, WideString и ShortString. То есть, все уже давно живут с преобразовываемыми строками, а проблему видят исключительно в строках с информацией о кодировке. Это всё от непонимания. Но стоит поглубже изучить вопрос, как окажется, что драконов там нет.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

kazalex писал(а):
runewalsh писал(а):Я надеюсь, это отключаемо?

Нет конечно, как не отключаемы и преобразования между ShortString и AnsiString, AnsiStrting и WideString, WideString и ShortString. То есть, все уже давно живут с преобразовываемыми строками, а проблему видят исключительно в строках с информацией о кодировке. Это всё от непонимания. Но стоит поглубже изучить вопрос, как окажется, что драконов там нет.


Это не тоже самое, эти строки имеют разное внутреннее представление...

Это всё от непонимания.
Безусловно. Но для понимания требуется затратить время и совершенно не понятно во имя чего я должен это делать.
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

Если вы до этого изменения понимали как работает значит должны быть рады этому изменению.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

sts писал(а):Если вы до этого изменения понимали как работает значит должны быть рады этому изменению.

Почему я должен радоваться очередному необоснованному усложнению?
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

потому что усложнения нету, есть упрощение, плюс избавления от костылей для тех разработчиков которым приходится таскать кодирову к строкам самостоятельно.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

sts писал(а):потому что усложнения нету, есть упрощение, плюс избавления от костылей для тех разработчиков которым приходится таскать кодирову к строкам самостоятельно.

Добавление лишней сущности ведет к упрощению? Однако... :shock:
А зачем в одной программе работать со строками в разной кодировке?
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Mikhail писал(а):Это не тоже самое, эти строки имеют разное внутреннее представление...

Внутреннее представление не имеет значения. Компилятор решает о необходимости преобразования основываясь на информации об используемых типах.

Mikhail писал(а):Но для понимания требуется затратить время и совершенно не понятно во имя чего я должен это делать.

Если понимаешь что такое юникод и что такое кодировки то тратить много времени не придётся.

Mikhail писал(а):А зачем в одной программе работать со строками в разной кодировке?

Обычно, перекодировка требуется на границах приложения т.е. на входных и выходных данных. А там уже всё от задачи зависит.
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

добавления сущности нету.
в прикладных программах больших чем калькулятор это типовая задача, utf8 еще бесконечно далек от победы.

Добавлено спустя 2 минуты 33 секунды:
kazalex писал(а):Обычно, перекодировка требуется на границах приложения т.е. на входных и выходных данных. А там уже всё от задачи зависит.

более того, в нормальных системах положено работать в той кодировке в которой пришли данные.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

kazalex писал(а):Обычно, перекодировка требуется на границах приложения т.е. на входных и выходных данных. А там уже всё от задачи зависит.

Вот и я о том же. Поэтому мне не понятно зачем нужны строки с кодировкой.

sts писал(а):добавления сущности нету.
в прикладных программах больших чем калькулятор это типовая задача, utf8 еще бесконечно далек от победы.

Это как это нету? А новый тип, а дополнительный рантайм? Я так и не понял, зачем нужны строки с кодировкой... :?

kazalex писал(а):Внутреннее представление не имеет значения. Компилятор решает о необходимости преобразования основываясь на информации об используемых типах.

Имеет, но сейчас разговор не об этом. А информация о типе (т.е. кодировка) находится в скрытом блоке перед строкой, как в Делфи, я правильно понимаю?

Добавлено спустя 1 минуту 39 секунд:
sts писал(а):более того, в нормальных системах положено работать в той кодировке в которой пришли данные.

Например?
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

тип AnsiString уже был
Кодировка уже была и равнялась "системной"
псевдокод (по моему примеру)
было UnicodeString1:= UnicodeString2 + AnsiToUnicode(AnsiString2, системная кодировка)
стало UnicodeString1:= UnicodeString2 + AnsiToUnicode(AnsiString2, кодировка из AnsiString2)

Добавлено спустя 4 минуты 39 секунд:
Mikhail писал(а):Например?

например медицинская система, там зоопарк кодировок включая досовские.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

sts писал(а):псевдокод (по моему примеру)
было UnicodeString1:= UnicodeString2 + AnsiToUnicode(AnsiString2, системная кодировка)
стало UnicodeString1:= UnicodeString2 + AnsiToUnicode(AnsiString2, кодировка из AnsiString2)


И какая разница? Писать на один параметр меньше? :)

sts писал(а):например медицинская система, там зоопарк кодировок включая досовские.

Вы о файлах?
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

Mikhail писал(а):И какая разница? Писать на один параметр меньше? :)


об этом и речь - усложнения нету а проще стало.

Mikhail писал(а):Вы о файлах?

не только, но грубо говоря да.

Добавлено спустя 2 минуты 34 секунды:
давно ли ли вы видели конфигурационный файл 1989 года?
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

sts писал(а):об этом и речь - усложнения нету а проще стало.

Т.е. число неизвестных увеличилось, а задача стала проще? :?

sts писал(а):не только, но грубо говоря да.

Ну тогда такие преобразования нужно делать при чтении-записи. Если речь о СУБД, то тоже самое и их касается, тем более что многие из них умеют перекодировку автоматически.
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

Mikhail писал(а):Т.е. число неизвестных увеличилось, а задача стала проще?


опять же, для тех кто понимает ничего (в худшую сторону) не изменилось , для тех кто не интересовался - ничего не изменилось.

Mikhail писал(а):Ну тогда такие преобразования нужно делать при чтении-записи.


хранить в неизменном виде - требование к системе.


кароче вернулись в исходную точку.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

sts писал(а):хранить в неизменном виде - требование к системе.

И в чем проблема?
Прочитал - конвертировал - поработал - конвертировал обратно - записал.

Добавлено спустя 1 минуту 43 секунды:
sts писал(а):опять же, для тех кто понимает ничего (в худшую сторону) не изменилось , для тех кто не интересовался - ничего не изменилось.

Это не совсем так...
Ответить