|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] вывод данных с конца файла |
|
VBS/WSH/JS - [решено] вывод данных с конца файла
|
Пользователь Сообщения: 93 |
Помогите, пожалуйста, со скриптом на VBS, который бы выводил последние два байта файла в текстовом виде.
Этот скрипт выводит два байта с начала, а вот как сделать это для конца файла - ума не приложу! |
|
Отправлено: 12:42, 02-12-2011 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:56, 05-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать Благодарю, но к сожалению не подошло.
![]() Объясню более детально для чего необходимо... Скрипт нужен для подключения к плагину Тотала: http://wincmd.ru/plugring/script_wdx.html Поскольку иных плагинов позволяющих читать файл в HEX виде и выводить в колонку Тотала (нужна сортировка по значению) Гугл не знает, приходится заниматься хирургией гланд через место в которое не светит солнце! |
Отправлено: 21:47, 05-12-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать pzh2393, вот Вам скрипт, «прикручивайте» сами:
Option Explicit Dim strFileName Dim intByteCount Dim objFSO Dim objSpeechFileStream Dim lngLength Dim arrBuff strFileName = "C:\WINDOWS\notepad.exe" intByteCount = 2 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objSpeechFileStream = WScript.CreateObject("SAPI.SpFileStream") If objFSO.FileExists(strFileName) Then lngLength = objFSO.GetFile(strFileName).Size With objSpeechFileStream .Open strFileName On Error Resume Next .Seek lngLength - intByteCount If Err.Number = 0 Then On Error Goto 0 If .Read(arrBuff, intByteCount) = intByteCount Then WScript.Echo ConvertByteArray2HexString(arrBuff) End If Else On Error Goto 0 End If .Close End With Else ' Nothing to output End If WScript.Quit 0 '============================================================================= Function ConvertByteArray2HexString(arrByteArray) Dim i Dim strValue strValue = "" For i = 1 To LenB(arrByteArray) strValue = strValue & Right("00" & Hex(AscB(MidB(arrByteArray, i, 1))), 2) Next ConvertByteArray2HexString = strValue End Function '============================================================================= |
Отправлено: 00:48, 06-12-2011 | #4 |
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать Большое спасибо!
Правда скрипт выдает ошибку "Expected statement"... не подскажете что это, в каком месте пытаться поправить? |
|
Отправлено: 15:13, 06-12-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать В окне сообщения об ошибке нажмите Ctrl-C, затем вставьте полученный текст из буфера обмена сюда. Если как-то меняли код — приведите и его.
|
Отправлено: 16:09, 06-12-2011 | #6 |
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать В коде ничего не менял...
При запуске из под "окон" возвращает значение "4444", что оно значит тоже непонятно, в колонке Тотала дважды пишет - "Expected statement Expected statement" для любых типов файлов. |
Отправлено: 18:21, 06-12-2011 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата pzh2393:
Цитата pzh2393:
Цитата pzh2393:
|
|||
Отправлено: 21:36, 06-12-2011 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать pzh2393, как сделаете — можете сюда же выложить проделанные Вами действия по подключению.
|
Отправлено: 12:20, 07-12-2011 | #9 |
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать 2Iska
В теме посвященной вопросам работы плагина помогли адаптировать Ваш скрипт... With CreateObject("SAPI.SpFileStream") .Open FileName .Seek CreateObject("Scripting.FileSystemObject").GetFile(FileName).Size - 2 If .Read(F, 2) = 2 Then For i = 1 To LenB(F) Content = Content & " " & Right("00" & Hex(AscB(MidB(F, i, 1))), 2) Next End If .Close End With Подключение к Total Commander: script.wdx подключается либо обычным способом через "Конфигурация => Настройки => Плагины => WDX.Настройка => Добавить" либо ручным прописыванием в wincmd.ini строчек [ContentPlugins] 0=%COMMANDER_PATH%\PLUGINS\wdx\script\script.wdx script.ini плагина должен выглядеть примерно так: В самом Тотале создается новый набор колонок "Конфигурация => Настройки => Набор колонок => Новый" где в любую колонку вписывается [=script.Result], [=script.Result1], [=script.Result2] и тд. в зависимости сколько значений возвращает скрипт ("Content = ", "Content1 = ", "Content2 = " и тд.). Проверил данный код в Тотал - работает! Пы.Сы. Ещё раз благодарю, без Вашего кода никто не брался за такую задачу. |
Последний раз редактировалось pzh2393, 08-12-2011 в 13:40. Отправлено: 11:12, 08-12-2011 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] замена строчки в файле | Bint | Скриптовые языки администрирования Windows | 4 | 15-10-2009 10:24 | |
[решено] Замена строчки в bat файле на несколько других | ZeroCrash | AutoIt | 4 | 02-07-2009 04:12 | |
CMD/BAT - [решено] Отделить последние цифры из строчки в текстовом файле | ZeroCrash | Скриптовые языки администрирования Windows | 4 | 29-06-2009 16:03 | |
Редактирование строчки в файле | slaine | Вебмастеру | 5 | 10-08-2005 00:36 | |
Delphi - Delphi | Ресурсы и поиск в файле | Borislav | Программирование и базы данных | 1 | 10-02-2005 09:30 |
|