| Всем привет! Прошу прощения за длинное сообщение но по другому не напишешь. Имею большой текстовик несколько тысяч строк содержащий цифры в левой части каждой строки и текст в правой части каждой строки.
 Проблема в том что в каждой строке нужно убрать пробелы в левой части у цифр не трогая ту часть строки где текст.
 Решил реализовать это на 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, то как тогда сохранить полученный результат целиком в другом текстовике?
 Помогите запутался окончательно.
 Может есть более простой способ реализации этого безобразия?
 Ответить
       |