22.06.2014, 18:53
|
Re: Как удалить подстроки в txt или word файле
#4
|
|
The Scarecrow
Детали профиля (+/-)
Ответов: 5,865
Регистрация: 26.03.2012
Спасибо:1,637/857
Не понравилось:33/2
|
Накатал быстренько программу макроса, выполняющего эту фигню в MS Word:
Sub Макрос1()
'
' Макрос1 Макрос
'
'
' Открываем документ там, где он валяется на винте
Documents.Open FileName:="e:\primer.docx", ReadOnly:=False
' Активируем его
Dim aDoc As Document
Set aDoc = ActiveDocument
' Создаем два массива типа char: с исходным текстом и с текстом после обработки
' новый текст пока пустой
Dim r, txm
Set r = aDoc.Content
txm = ""
'перебираем все символы исходного текста
For i = 1 To Len(r)
' k - длина предполагаемого куска с #...текст...#
k = 1
' Eсли текущий символ #, ищем следующий знак #
If Mid(r, i, 1) = "#" Then
While Mid(r, i + k, 1) <> "#"
' Eсли # не закрыта второй #, оставляем ее
If i + k > Len(r) Then
GoTo 10
End If
k = k + 1
Wend
k = k + 1
' Tупо пропускаем все символы между ##, включая их самих
i = i + k -1
Else
' Добавляем текущий символ в конец массива txm
10 txm = txm + Mid(r, i, 1)
End If
Next i
' Очищаем весь документ
aDoc.Content.Select
Selection.Delete
' Вписываем в него новое содежимое, накопленное в txm, закрываем файли сохраняем его.
aDoc.Content = txm
aDoc.Save
aDoc.Close (SaveChanges)
End Sub
|
Исходный файл primer.dox:
|
#u2f3ceac6b7s# Жил был Вася #u6220a2877es#бухал много #u6220a2877es#...... #u6220a2877es# . Заработал цирроз #и помер # и помер. #Конец истории
|
Он же, после обработки:
|
Жил был Вася бухал много ...... . Заработал цирроз и помер. #Конец истории
|
Последний раз редактировалось Duke_Cheb; 22.06.2014 в 19:10.
|
|
|
|