01.02.2012, 11:53 | #1 |
Участник
|
При записи в текстовый файл, вместо русских букв записываются крякозябры. С английскими буквами все ок.
HtmlFile.CREATE('F:\test.txt'); HtmlFile.TEXTMODE(TRUE); HtmlFile.CREATEOUTSTREAM(OutStreamFile); OutStreamFile.WRITETEXT('Тут должны быть нормальные буквы!'); OutStreamFile.WRITETEXT('English'); HtmlFile.CLOSE; Все уже, что знаю, перепробовал. Похоже, что они записываются в ms-dos, потому что если открывать с помощью ворда, и выбрать кодировку MS-DOS то крякозябры превращаются в нормальные буквы. |
|
01.02.2012, 12:03 | #2 |
Участник
|
Проблема решается с помощью кодеюнита Localisation Management
|
|
01.02.2012, 14:57 | #3 |
Участник
|
Вообще-то в хелпе пишут, что TEXTMODE должен стоять до CREATE, не думаю, что это поможет, но...
И вообще, зачем нужен STREAM, почему нельзя писать просто в FILE? UPD: Нет, перестановка не помогла, но пишет без СТРИМа. |
|
01.02.2012, 21:46 | #4 |
Участник
|
Проблема решается подменой кодировки в STREAM'e:
Код: тextLoc := 'русский текст'; CREATE(StreamLoc); StreamLoc.Open; StreamLoc.Charset('windows-1251'); // русская кодировка StreamLoc.WriteText('textLoc'); |
|
02.02.2012, 06:47 | #5 |
Участник
|
Этот код видимо для новой версии навижен. У меня таких функций нет. Версия 4.0 SP3
|
|
02.02.2012, 06:57 | #6 |
Участник
|
Щя другая проблема, вместо символа № и ещё буква "я" периодически вылазит, не пойму вместо какого символа.
|
|
02.02.2012, 08:23 | #7 |
Участник
|
№ исправил, осталось букву я убрать вместо хз чего
|
|
02.02.2012, 09:01 | #8 |
Участник
|
Буква "я" вылазит при разделении на разряды. Получается вот так: 1 300 в файле пишется 1я300.
|
|
02.02.2012, 09:22 | #9 |
Участник
|
Сделал так
Код: IF EVALUATE(dec,val) THEN BEGIN val:= FORMAT(dec, 15, 9); END ELSE val:= Dos2Win(val); |
|