Всем привет! Прошу прощения за длинное сообщение но по другому не напишешь.
Имею большой текстовик несколько тысяч строк содержащий цифры в левой части каждой строки и текст в правой части каждой строки.
Проблема в том что в каждой строке нужно убрать пробелы в левой части у цифр не трогая ту часть строки где текст.
Решил реализовать это на VBScript так:
1.Код читает текстовик и собирает все строчки поэлементно в массив. Затем можно просмотреть каждую строку массива (т.е. моего текстовика)
Это у меня получилось (Код 1)
==============(Код 1)=================================
option Explicit
on Error Resume Next
dim arrTxtArray()
dim myfile
dim searchstring
dim objtextfile
dim strnextline
dim intsize
dim objfso
dim i
intSize = 0
myfile = "местонахождение моего файла"
searchstring = "буква или цифра для поиска"
const forreading = 1
set objfso = Createobject("scripting.filesystemobject")
set objtextfile = objfso.opentextfile(myfile, forreading)
do until objtextfile.atendofstream
strnextline = objtextfile.readline
if instr(strnextline, searchstring) then
redim preserve arrtxtarray(intsize)
arrtxtarray(intsize) = strnextline
intsize = intsize + 1
end if
loop
objtextfile.close
for i=lbound(arrtxtarray) to ubound(arrtxtarray)
wscript.echo arrtxtarray(i)
next
====================================================
2. Небольшая функция с использованием регулярных выражений находит в введенной в нее строке "str1" цифровую часть и убирает ненужные пробелы не трогая тектовую часть.
Это у меня тоже получилось (Код 2).
================(Код 2)================================
Function ReplaceTest(patrn, replStr)
Dim regEx, str1 ' Create variables.
str1 = именно сюда надо как то впихнуть элемент массива
Set regEx = New RegExp
regEx.Pattern = "\s\w"
regEx.IgnoreCase = True
regEx.Global = True
ReplaceTest = regEx.Replace(str1, replStr)
End Function
MsgBox(ReplaceTest(" ", ""))
====================================================
Только пункт второй у меня получается выполнить лишь для конкретной строки введеной в переменную "str1".
Вопрос 1:
Я не знаю как мне заставить мою функцию (Код 2) делать тоже самое не для конкретной строки, а для каждого прочитанного элемента массива полученного с помощью (Код 1)?
Вопрос 2:
Если решится вопрос 1, то как тогда сохранить полученный результат целиком в другом текстовике?
Помогите запутался окончательно.
Может есть более простой способ реализации этого безобразия?
Ответить
|