|
ADODB.Stream -> Операция не допускается, если объект закрыт | ☑ | ||
---|---|---|---|---|
0
DigitalDolphin
25.08.23
✎
15:09
|
Нужно перегнать файл ANSI в UTF8. Написал тестовый файл JS для проверки. Ошибка при запуске в строке 8: Операция не допускается, если объект закрыт. Че может это быть?
1 function FileInUTF8() { 2 Stream = new ActiveXObject('ADODB.Stream'); 3 Stream.Charset= 'utf-8'; 4 Stream.Type = 2; 5 Stream.Mode = 3; 6 7 WScript.Echo(" -> LoadFromFile"); 8 Stream.LoadFromFile(PathLoad); 9 10 WScript.Echo(" -> PathUTF8"); 11 Stream.SaveToFile(PathUTF8, 2); 12 return 'ok'; 13 } 14 15 WScript.Echo("Start..."); 16 var PathLoad = "D:\\S2023-07-22.txt"; 17 var PathUTF8 = "D:\\utf8_S2023-07-22.txt"; 18 FileInUTF8(); 19 WScript.Echo("...End"); |
|||
1
Garykom
гуру
25.08.23
✎
15:18
|
1С 7.7?
|
|||
2
Кирпич
25.08.23
✎
16:10
|
Stream.Open
|
|||
3
DigitalDolphin
25.08.23
✎
16:24
|
(2) Спасибо помогло
|
|||
4
DigitalDolphin
25.08.23
✎
16:27
|
Да проблему ошибки решило. Но саму перекодировку не делает. Просто отображает в новом файле глухими символами. А есть возможность перекодировать метод тут?
|
|||
5
Garykom
гуру
25.08.23
✎
16:40
|
||||
6
Кирпич
25.08.23
✎
16:42
|
Создай Stream2. запиши в него свой Stream. Stream2 запиши на диск.
|
|||
7
H A D G E H O G s
25.08.23
✎
16:51
|
PathLoad="e:\tmp\ansi.txt";
PathUTF8="e:\tmp\utf8.txt"; inStream = Новый COMОбъект("ADODB.Stream"); inStream.Charset= "windows-1251"; inStream.Type = 2; inStream.Mode = 3; inStream.Open(); inStream.LoadFromFile(PathLoad); outStream=Новый COMОбъект("ADODB.Stream"); outStream.Type = 2; outStream.Mode = 3; outStream.Open(); outStream.Charset= "utf-8"; outStream.writeText(inStream.readText()); outStream.SaveToFile(PathUTF8, 2); outStream.close(); inStream.close(); |
|||
8
DigitalDolphin
25.08.23
✎
16:59
|
(7) Спасибо. Да уже тоже на других ветках Мисто нашел это решение. СПАСИБО.
|
|||
9
Кирпич
25.08.23
✎
16:59
|
|
|||
10
Garykom
гуру
25.08.23
✎
17:04
|
перепись динозавриков...
|
|||
11
DigitalDolphin
25.08.23
✎
18:46
|
(9) Интересно, оказывается можно еще и просто стрим скопировать методом .CopyTo(). Отлично! Я решил первым через readText().
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |