Сообщение от :
MsgBox "Необходимо сменить диск.",vbExclamation + vbOkOnly, "Напоминание о смене диска"
в сообщении использовать текст находящийся в внешнем файле в DOS-кодировке?
Если не сложно, то еще и с возможностью выбора определенных номеров строк их этого файла.
Заранее сенькс :-)
Yandex 11:49 17.07.2008
Ща справочника под рукой нет, потому псевдокот
Сообщение от :
objFSO = СоздатьОбъектФайловойСистемы
objF = objFSO.ОткрытьТекстовыйФаил
strLine = objF.ReadLine ' Необходимое число раз
objF.ЗакрытьТекстовыйФаил
MsgBox strLine, vbExclamation + vbOkOnly, "Напоминание о смене диска"
Если надо - вечерком после семи рабочий код кину.
Не заметил, что кодировка DOS - тогда надо либо конвернуть фаил заранее в Win, либо извратнуто делать. Наличие стандартного перекодирования в WSH что то не припомню.
P.S. Самый простой медот использовать WSH - это скачать с сайта MS .chm фаил про скриптовые технологии (там море простых примеров) + изучать репозитарий примеров на сайте MS в разделе WSH (нетрививальные примеры, в том числе и по удаленному администрированию и управлению через WMI).
Kerish 12:38 17.07.2008
Незнаю как в VBS, а в VB6 помню была API функция OemToChar, которая конвертировала текст из DOS в Windows (1251) кодировку.
Yandex 18:57 17.07.2008
Вообщем вот, набросал.
Правда с чтением ASCII (DOS) файла у WSH косяк - хотя я и указываю, что открываемый файл ASCII, WSH все равно открывает его в ANSI (Win)
Код читает третью строку из файла Data.txt и выводит ее в MsgBox
Сообщение от :
Dim objFSO, objF
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.OpenTextFile("Data.txt", 1, true, 0)
Итак, OpenTextFile открывает файл, если его нет, то создается новый файл. Из параметров, передаваемых методу, обязательным является только первый - имя файла. Остальные параметры можно не указывать. Вторым параметром устанавливается режим открытия файла. Возможные значения, которые может принять эта переменная, следующие:
1 - файл открывается только для чтения;
2 - файл открывается для записи. Причем, все содержимое файла, которое было до этого, уничтожится;
8 - файл открывается для добавления данных. Все, что вы запишите, будет добавлено в конец файла. Довольно удобно для ведения различных логов.
Третья переменная может принимать значение true или false. Она показывает, создавать ли новый файл, если его до этого не существовало. Если значение равно true, то новый файл будет создан.
Есть еще и четвертый параметр, который указывает кодировку для открытия файла. Его возможные значения:
- 2 - открывается, используя системную кодировку;
- 1 - открывается в кодировке Unicode;
0 - открывается в кодировке ASCII.
shuri, проверь на файле с русским текстом в DOS кодировке. У меня в MsgBox выводит каряблики.
Что значат параметры я в курсе - в оригинальной справке от MS все есть.
Broadcast 07:33 18.07.2008
Сообщение от Yandex:
objF.SkipLine
strLine = objF.ReadLine
А несколько строк как вывести?
strLine = objF.ReadLine
strLine = objF.ReadLine
или
strLine = objF.ReadLine +objF.ReadLine
Broadcast 07:34 18.07.2008
Сообщение от Yandex:
проверь на файле с русским текстом в DOS кодировке
Да, крокозяблы.
Yandex 08:58 18.07.2008
Broadcast, вот пример, который выводит результат 2, 4 и 5-ой строк
Сообщение от :
Dim objFSO, objF
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.OpenTextFile("Data.txt", 1, true, 0)
objF.SkipLine ' Пропускаем 1-ую строку
strLine = objF.ReadLine ' Запоминаем 2-ю строку
objF.SkipLine ' Пропускаем 3-ю строку
strLine = strLine & objF.ReadLine ' Читаем 4-ю строку и добавляем к данным из второй строки
strLine = strLine & objF.ReadLine ' Читаем 5-ю строку и добавляем к полученным ранее данным
objF.Close
MsgBox strLine
Немного по коду
После ' идут комментарии
Объединение двух строк выполняется с помощью оператора &, а не +, как например в Delphi.
А не вариант подложить скрипту перекодированный фаил в нормальной кодировке?
Broadcast 16:34 18.07.2008
Сообщение от Yandex: Broadcast, вот пример, который выводит результат 2, 4 и 5-ой строк
По строкам немного допетрил, еще разберусь как перевод строки сделать
Сообщение от Yandex:
А не вариант подложить скрипту перекодированный фаил в нормальной кодировке?
Вариант конечно, но файл генерят другие проги, некий сводный лог, буду смотреть, конечно можно и заюзать конвертор, но его тоже надо гдето взять. А каких то системных утилит в Win2000 для конвертации нет?
Yandex 23:26 18.07.2008
Broadcast, вот так добавлять строку не просто в хвост, а с переносом
Сообщение от :
strLine = strLine & Chr(10) & Chr (13) & objF.ReadLine
Конверторов полно, надо найти который может работать без GUI, через командную строку, тогда перед выполнением первого скрипта надо будет вызывать его и передать имя исходного файла Data.txt и получаемого Data2.txt.
Код вот такой
Сообщение от :
Set objShell = CreateObject("WScript.Shell")
objShell.Run Chr(34) & "C:\Program Files\Чудо конвертер\Чудо Конвентер.exe Data.txt Data2.txt" & Chr (34)
dn2k4 09:52 20.07.2008
Сообщение от Yandex:
Конверторов полно, надо найти который может работать без GUI
или влехкую вживить в тот же vbs =)
Сообщение от :
function convert(txt, srcCharset, dstCharset)