1

Тема: VBScript: Дописывание в начало текста

Здравствуйте, я хочу у Вас кое-что спросить, а если можно, то и помочь написать скрипт.
У меня есть файл SWF. Если открыть его блокнотом, то можно увидеть, что текст начинается с буквы, например это будет буква W. Ну вообщем этот файл swf переименован как qwe.dll, и у него из бинарного кода убрана первая буква (которую мы заранее знаем). VBS должен скопировать файл куда-нибудь, открыть его через TextStream и дописать в начало нашу букву W. Без буквы файл не запуститься корректно. В чем вопрос. Мне нужно как-то открыть файл, и дописать В НАЧАЛО букву.
Скрипт-то легкий вроде,а что-то путаюсь и не могу дописать букву в НАЧАЛО текста, только дописать в конец. Помогите, пожалуйста.

Программист - это не профессия, а смысл жизни (с)

2

Re: VBScript: Дописывание в начало текста

-TOXA-, вообще-то TextStream не предназначен для работы с бинарными данными и в ряде случаев может работать некорректно, портя содержимое.

А так:

Option Explicit

Const ForReading   = 1
Const ForWriting   = 2

With WScript.CreateObject("Scripting.FileSystemObject")
    With objFSO.OpenTextFile("Some file.ext", ForReading)
        strContent = .ReadAll()
        .Close
    End With
    
    With objFSO.OpenTextFile("Some file.ext", ForWriting)
        .Write("W" & strContent)
        .Close
    End With
End With

WScript.Quit 0

3

Re: VBScript: Дописывание в начало текста

alexii, хм, я на подобии хотел сделать, но я был не уверен что переменная будет в себе хранить весь бинарный код, так как в нем содержатся символы, которые даже Юникод может не прочитать. Ладно, это все шутки, но все равно, спасибо, я попробую.

Программист - это не профессия, а смысл жизни (с)

4 (изменено: -TOXA-, 2012-08-15 23:50:32)

Re: VBScript: Дописывание в начало текста

alexii, извините, но при запуске вашего скрипта, вылезает ошибка, когда я устранил проблемы, у меня стало писаться, что "Ввод данных за пределами файла" на строке где идет ReadAll(). Такая же ошибка была и у меня, до того как я написал на форум, и пытался писать сам....


P.S. А это может связано с тем, что в переменную не может влезть такой огромный текст, хотя это чушь, но мало ли.

Программист - это не профессия, а смысл жизни (с)

5

Re: VBScript: Дописывание в начало текста

alexii пишет:

TextStream не предназначен для работы с бинарными данными

Попробуйте использовать это:
VBScript: чтение и запись бинарных данных
WSH: чтение и запись бинарных данных

А также ждёт своего часа «SAPI.spFileStream», пока кто-нибудь не выложит примеры в Коллекцию:
Аналог ADODB.Stream, который не грузит весь файл в память )
WSH: Byte() to Long
VBS, JS: Загрузка файл на хостинг (XMLHTTP) и т.п.

6

Re: VBScript: Дописывание в начало текста

Нее, мне нужно чтобы на всех компьютерах без дополнительных библиотек читалось, но спасибо за то что уделили время....:):):)

Программист - это не профессия, а смысл жизни (с)

7

Re: VBScript: Дописывание в начало текста

MDAC 2.8 SP1, в состав которого входит библиотека, реализующая объект «ADODB.Stream», наличествует во всех ОС, начиная с Windows XP.

8

Re: VBScript: Дописывание в начало текста

А если создать файл из одной буквы W без переноса строки, а потом сделать конкатенацию с помощью консольной команды copy?

9

Re: VBScript: Дописывание в начало текста

Да, это будет проще и надёжнее.

10

Re: VBScript: Дописывание в начало текста

Serge Yolkin и alexii, Расскажите, пожалуйста, подробней о "конкатенации с помощью консольной команды copy". Или она делается через этот самый MDAC 2.8 SP1?

Программист - это не профессия, а смысл жизни (с)

11

Re: VBScript: Дописывание в начало текста

copy /b ФайлСБуковойW + /b ФайлБезБуковыW ФайлБезБуковыW

Я конечно далек от мысли... (с)

12

Re: VBScript: Дописывание в начало текста

ФайлСБуковойW

ex. «W.txt» =:

1>W.txt <nul set /p sVar=W

13

Re: VBScript: Дописывание в начало текста

-TOXA- пишет:

Или она делается через этот самый MDAC 2.8 SP1?

Нет. Это в случае использования WSH.

14

Re: VBScript: Дописывание в начало текста

Извините, я нуб в этом, WSH не знаю, и чего-то не понимаю его. Он вроде как связан с VBS там с JS, но как пользоваться не знаю. Можно ли написать сразу мою функцию, как она должна выглядеть. Если не сложно...

Программист - это не профессия, а смысл жизни (с)

15

Re: VBScript: Дописывание в начало текста

-TOXA-, собственно, последние приведённые примеры (#11, #12) скорее связаны с командной строкой Windows. Их можно использовать в скриптах, но, если в скриптовых технологиях Вы не разбираетесь, напишите пакетный файл .bat или .cmd (лучше cmd), тем более, что необходимые команды уже приведены.