20080706

delphi form (dfm) со строками на русском

портирую сейчас в lazarus под linux приложение, написанное в delphi под windows.
в дельфийских формах (файлы с суффиксом dfm) надписи на русском представлены в таком примерно виде:
Caption = #1055#1086#1080#1089#1082
что не очень-то удобочитаемо.
для чего набросал скриптик на perl-е:
#!/usr/bin/perl -w
use Text::Iconv;
$conv=Text::Iconv->new("ucs-2be","utf-8");
sub aaa{
$a=$_[0];
$b=$a%256;
$c=($a-$b)/256;
return $conv->convert(chr($c).chr($b));
};
while (<>) {
s/((?:#\d{4})+)/"$1"/g;
s/#(\d{4})/aaa($1)/eg;
print
}
использовать его можно и просто как фильтр, и как самостоятельный обработчик файла:
cat файл.dfm | скрипт.pl | less
скрипт.pl файл.dfm | less
если Вам нужен результат не в utf-8 - подправьте соответствующую строчку. подходит все, что понимает iconv.

Комментариев нет: