Имя: Пароль:
1C
 
переделать текст в юникод
0 Тушканчик
 
31.08.06
18:20
Подскажите пожалуйста как реализовать такое дело:
1с формирует файлик в дос кодировке, как его преобразовать в юникод ?
сейчас парюсь с КомандаСистемы("dos2uni 1.txt 2.txt");
это долго... может уже есть готовые функции ?
1 Рупор2
 
31.08.06
18:40
Есть метод КодоваяСтраница() ...
2 Тушканчик
 
31.08.06
18:48
там только дос и виндовс
3 Тушканчик
 
31.08.06
18:49
Параметры:
<Режим> : 0 - windows-кодировка, 1 - DOS-кодировка.
4 smaharbA
 
31.08.06
18:57
//*******************************************
Процедура Сформировать()
   Стрим = СоздатьОбъект("Adodb.Stream");
   Стрим.Type = 2;
   Стрим.Mode= 3;
   Стрим.charset="cp866";
   Стрим.Open();
   Стрим.LoadFromFile("c:\dos.txt");
   Стр=Стрим.ReadText();
   Стрим.Close();
   Стрим.Open();
   Стрим.charset="utf-16";
   Стрим.Writetext(Стр);
   Стрим.SaveToFile("c:\unicode.txt",2);
КонецПроцедуры
5 Тушканчик
 
31.08.06
19:24
чуть не скончалСя когда заработало
пасибо!
6 Тушканчик
 
31.08.06
19:38
а чтобы не из файла а из обьекта брать данные и сохранять в юникод ?:)
Текст = СоздатьОбъект("Текст");
Текст.КодоваяСтраница(1);
Текст.ДобавитьСтроку(Стр1);
Текст.ДобавитьСтроку(Стр2);
7 smaharbA
 
31.08.06
19:42
а зачем так ? может проще сразу из стр1, стр2... ?
8 Тушканчик
 
31.08.06
19:42
да можно в принципе я не против )
9 Тушканчик
 
31.08.06
19:43
но в результате всерано должен получиться файл
10 smaharbA
 
31.08.06
19:46
//*******************************************
Процедура Сформировать()
   Стрим = СоздатьОбъект("Adodb.Stream");
   Стрим.Type = 2;
   Стрим.Mode= 3;
   Стрим.charset="utf-16";
   Стрим.Open();
   Стр="Какаято строка";
   Стрим.Writetext(Стр);
   Стрим.SaveToFile("c:\unicode.txt",2);
КонецПроцедуры
11 Тушканчик
 
31.08.06
19:49
олично!
но у меня стр1 и стр2
как между ними перевод строки постаивть ?
12 smaharbA
 
31.08.06
19:52
(11) РазделительСтрок
13 Звездочёт
 
02.09.06
12:00
(10) если просто записать текст в Unicode можно и так ;)
var fso = new ActiveXObject('Scripting.FileSystemObject');
var ts = fso.OpenTextFile('C:\\unicode.txt', 2, true, -1);
ts.WriteLine('Строка по-русски');
ts.Close();
14 Тушканчик
 
07.09.06
17:19
Интересно а можно ли текст записать БЕЗ первых 2 байт юникода FEFF (уж очень они мешают создавая какойто значек типа пробела)