Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   вставка текста в *.PS (DOS кодировка) в нужную строку и столбец (http://forum.oszone.net/showthread.php?t=241181)

lexis1980 23-08-2012 07:26 1975141

вставка текста в *.PS (DOS кодировка) в нужную строку и столбец
 
Добрый день всем знатокам bat/cmd. Прошу вашей помощи в написании файлика т.к. сам в этом мало что смыслю. Есть задача. Нужно в файле *.PS сделать вставку вида ("__"_____2012.г.), но она должна находится в определенном месте. файл PS содержит только текст и предназначен для печати на принтере. Если я правильно понял, указав значения строки и столбца можно задать место начала вставки. В файле встречаются пустые строки. Просматривая эту ветку форума я видел вариант вставки, но там батник не работал при наличии в файле пустых строк. Помогите пожалуйста реализовать эту идею.

lchou 23-08-2012 17:17 1975553

Если исходный файл это просто текст, то на VBS примерно так:
Код:

Dim fso, vSrcStream, vDestStream
Dim strInsertText, strLine, lngLineLen, lngLineIndex

Const FILE_SRC = "R:\1.txt"  'исходный файл
Const FILE_DEST = "R:\2.txt"  'измененный файл

Const POS_COLUMN = 50  'столбец
Const POS_ROW = 13  'строка

Const INSERT_TEXT = """__""_____2012Ј."  'что вставлять

Set fso = CreateObject("Scripting.FileSystemObject")

Set vSrcStream = fso.OpenTextFile(FILE_SRC, 1, False, 0)
Set vDestStream = fso.OpenTextFile(FILE_DEST, 2, True, 0)

While Not vSrcStream.AtEndOfStream
        lngLineIndex = lngLineIndex + 1
        strLine = vSrcStream.ReadLine
        If lngLineIndex = POS_ROW Then
                lngLineLen = Len(strLine)
                If lngLineLen >= POS_COLUMN Then
                        vDestStream.WriteLine Left(strLine, POS_COLUMN - 1) & INSERT_TEXT & Mid(strLine, POS_COLUMN)
                Else
                        vDestStream.WriteLine strLine & String(POS_COLUMN - lngLineLen - 1, " ") & INSERT_TEXT
                End If
        Else
                vDestStream.WriteLine strLine
        End If
Wend

vSrcStream.Close
vDestStream.Close

MsgBox "OK"


lexis1980 24-08-2012 04:17 1975938

Уважаемый lchou, Ваше предложение отлично работает!!! Единственный момент, есть ли возможность запустить скрипт из bat файла? и далее вернуться обратно в bat и продолжить выполнение батника. Если есть идеи, прошу помочь. Заранее спасибо.

Iska 24-08-2012 05:14 1975942

Код:

cscript.exe //nologo "Путь\MyScript.vbs"

lexis1980 24-08-2012 09:16 1975999

Огромное Вам спасибо Iska, lchou, !!! Я на сайте первый раз. Ваша компетентность в данном вопросе просто ПОРАЗИЛА. Одним словом БЛАГОДАРЮ!!! Оперативно и грамотно!!!

lexis1980 31-08-2012 09:00 1980306

lchou, Помогите пожалуйста скриптом для замены одного текста на другой в текстовом файле DOS кодировки. Заранее благодарю!!!


Время: 19:04.

Время: 19:04.
© OSzone.net 2001-