Есть ли какие-либо инструменты / утилиты для преобразования "строки" в "AnsiString" в исходных файлах паскаль? - PullRequest
4 голосов
/ 30 ноября 2009

Delphi 2009 и выше поддерживает Unicode. У меня есть несколько устаревших исходных файлов на Паскале, которые я хочу, чтобы он компилировался в Delphi 2009/2010, а также в Delphi 2007 и ниже.

Быстрый и безопасный способ заменить

  • Строка в AnsiString
  • PChar в PAnsiChar
  • Чар к АнсиЧар

Существует ли какая-либо утилита, которая может проанализировать файл .pas и произвести такую ​​замену?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2009

Существует инструмент для указания областей, которые могут нуждаться во внимании:

http://cc.embarcadero.com/Item/27398

Он не конвертирует это автоматически, grep сделает это, но, как сказал mghie, все не так просто.

1 голос
/ 30 ноября 2009

Для этого вы можете использовать sed.

sed -i bak -e "s/string/AnsiString/g" *.pas

Хотя это была бы очень плохая идея. Нет причин, по которым ваш код не должен компилироваться во всех версиях Delphi. Значение слова "строка" изменилось, но что с того? Ваш код Delphi 2007 не нужно использовать с вашим кодом Delphi 2009. Форматы файлов DCU отличаются, поэтому вам все равно придется перекомпилировать все, что вы изменили.

Изменяя все на AnsiString, вы по сути отвергаете все новое, что предлагает Delphi 2009. Если это то, что вы хотите сделать, вы могли бы сэкономить много денег, просто не обновившись до Delphi 2009 вообще. Зачем покупать товар, а затем не использовать какие-либо его функции? Поскольку все остальное в продукте - Unicode, производительность вашей программы будет снижаться, поскольку она постоянно конвертирует между строковыми форматами. Вы также утонете в предупреждениях компилятора от всех преобразований.

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

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