|   |   | 
| 
 | 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().     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |