Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / JScript как сохранить файл в DOS кодировке? / 5 сообщений из 5, страница 1 из 1
03.03.2004, 09:08
    #32428919
sanek842
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScript как сохранить файл в DOS кодировке?
Вот пример создания файла

var fs, a;

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

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

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

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

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

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

Неужто нет ничего? Уже 2-ой день парюсь. Кстати в Java есть методы у объекта String на перекодировку, но это все не про WSH JScript
...
Рейтинг: 0 / 0
03.03.2004, 12:49
    #32429390
sanek842
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScript как сохранить файл в DOS кодировке?
дошло о какой ф-ии перекодировки вы говорили
вообщем остановился на этом
Код: 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
04.03.2004, 20:25
    #32431885
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScript как сохранить файл в DOS кодировке?
В JScript есть регулярные выражения, однако, нет посимвольного преобразования.

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


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