powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / JScript как сохранить файл в DOS кодировке?
5 сообщений из 5, страница 1 из 1
JScript как сохранить файл в DOS кодировке?
    #32428919
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример создания файла

var fs, a;

fs = new ActiveXObject("Scripting.FileSystemObject");
a = fs.OpenTextFile("testfile.txt", 2, true,0);
a.WriteLine("Привет"); // текст в кодировке win1251
a.Close();

как сделать чтоб в файле он был в cp866?
...
Рейтинг: 0 / 0
JScript как сохранить файл в DOS кодировке?
    #32428960
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я все время решал обратную задачу, читал текст DOS и конвертил в Win1251.

Для этого писалась функция перекодировки.

Перекодируй это вручную и запиши.

Лишние сведенья: в Win API есть функции перекодировки AnsiToOem и OemToAnsi.
...
Рейтинг: 0 / 0
JScript как сохранить файл в DOS кодировке?
    #32429008
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вручную как то не красиво
Да вот, AnsiToOem мне как раз и не хватает..
А задачка то у меня такая: в цикле я перебираю список файлов в дириктории, у которых русские названия, ест-но в скрипте они у меня в кодировке 1251, потом исходя из некоторых правил формирую cmd файл для работы с этими файлами. И он получается к работе не пригоден, т.к. названия файлов получаются не те из-за WIN кодировки.

Как выход, можно конечно после окончания работы скрипта вызывать программу написанную на VC++, кот. будет перекодировать этот cmd файл, а потом только его запускать, но ведь это ж все через одно место ...

Неужто нет ничего? Уже 2-ой день парюсь. Кстати в Java есть методы у объекта String на перекодировку, но это все не про WSH JScript
...
Рейтинг: 0 / 0
JScript как сохранить файл в DOS кодировке?
    #32429390
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дошло о какой ф-ии перекодировки вы говорили
вообщем остановился на этом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
function CodeTo(str,CP)
{
var a_win= "ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёйцукенгшщзхъфывапролджэячсмитьбю" 
var a_dos= "р%-" _:___T 9578 ;_ ">'____<"┼__-'__'___сcжгЄ_-_ийекдлў ЇаR<¤9474 ;нпзб 9488 ;ЁвмЎо"
var snew= ""

  for (i=0 ;i<str.length;i++)
    if ( CP=="cp866 " )
    { idx=a_win.indexOf(str.charAt(i))
      if ( idx!=-1  ) snew+=a_dos.charAt(idx); else snew+=str.charAt(i);
    }
    else if ( CP=="cp1251 " )
    { idx=a_dos.indexOf(str.charAt(i))
      if ( idx!=-1  ) snew+=a_win.charAt(idx); else snew+=str.charAt(i);
    }
  return snew;
}
var fs, a;

fs = new ActiveXObject("Scripting.FileSystemObject ");
a = fs.OpenTextFile(" testfile.txt ", 2 , true, 0 );
s_1251="Hello Привет cp1251 "
s_866=" Hello _аЁў_в cp866 "
a.WriteLine(s_1251);
a.WriteLine(s_866);
a.WriteLine(CodeTo(s_1251," cp866 "));
a.WriteLine(CodeTo(s_866," cp1251"));
a.Close();


ну это как универсальный вариант, а для своей задачки сделал проще с применением метода replace, т.к. файлы все называются одинаково, меняется только DDMMYY

Жаль что в WSH нет никаких встроенных средств :( Покрайне мере я не нашел, буду рад , если меня поправят.
...
Рейтинг: 0 / 0
JScript как сохранить файл в DOS кодировке?
    #32431885
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В JScript есть регулярные выражения, однако, нет посимвольного преобразования.

Можно написать свой ActiveXObject и там производить перекодировку, хоть вызывать AnsiToOem и OemToAnsi.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / JScript как сохранить файл в DOS кодировке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]