VBScript скрипт выборки части текат и удаления
Привет!
Поступила задача.
Имеется куча файлов, а именно это выгруженная почта в формате тхт.
Каждый файл это письмо, в не которых файлах есть форварды (FW:) и ответы (RE:)
Задача удалить часть текста именно форварды и ответы.
VBS только начал изучать, и на это потребуется время, а задачу нужно решить как можно быстрее.
Помогите пожалуйста!!
|
Образцы файлов, упакованные в архив. Указать на примерах что потребно удалить.
|
Вот часть текста
в этом примере нужно оставить кусок от RE: до From:, сам from и то что ниже убить. Писем таких 1000 000
Код:
RE: Повышение окладов сотрудникам
Pan Vadim </O=FIRMA/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=PAN VAIM28F>
Khaas Boris </O=FIRMA/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=Khaas Bois6a2>
===
Доброе утро!
После праздников выходит? Правильно будет принимать решения с его участием.
С уважением,
Вадим Пан,
директор по инвестиционному и кадровому развитию
FIRMA
тел.: +99999999
факс: +99999999
моб.: +99999999
VPan@firma.ru
www.firma.ru
From: Khaas Boris
Sent: Wednesday, April 30, 2014 9:19 AM
To: Pan Vadim
Cc: Pyin Aleksandr; Denko Yuliya; Khaasov Marat
Subject: Fwd: Повышение окладов сотрудникам
Вадим,
Доброе утро!
Огромная просьба внимательно рассмотреть данный случай.
У меня огромная просьба не ухудшать то, что удалось с огромным трудом сохранить с прежним менеджментом.
Спасибо.
Б.Хаас
Отправлено с iPad
Начало переадресованного сообщения:
От: "Khaasov Marat" <mhaasov@firma.ru>
Кому: "Denko Yuliya" <YDenko@firma.ru>
Копия: "Khaas Boris" <BKhaas@firma.ru>
Тема: FW: Повышение окладов сотрудникам
Юлия, добрый вечер!
Пересылаю старую переписку с HR.
Эти инженеры работают у нас с июля 2011 данным 6 инженерам необходимо увеличить оклады на 70%.
С уважением,
Марат Хаасов,
FIRMA
Тел.: +99999999
Моб.: +99999999
From: Khaas Boris
Sent: Wednesday, April 30, 2014 9:19 AM
To: Pan Vadim
Cc: Pyin Aleksandr; Denko Yuliya; Khaasov Marat
Subject: Fwd: Повышение окладов сотрудникам
Вадим,
Доброе утро!
Огромная просьба внимательно рассмотреть данный случай.
У меня огромная просьба не ухудшать то, что удалось с огромным трудом сохранить с прежним менеджментом.
Спасибо.
Б.Хаас
Отправлено с iPad
Начало переадресованного сообщения:
От: "Khaasov Marat" <mhaasov@firma.ru>
Кому: "Denko Yuliya" <YDenko@firma.ru>
Копия: "Khaas Boris" <BKhaas@firma.ru>
Тема: FW: Повышение окладов сотрудникам
Юлия, добрый вечер!
Пересылаю старую переписку с HR.
Эти инженеры работают у нас с июля 2011 данным 6 инженерам необходимо увеличить оклады на 70%.
С уважением,
Марат Хаасов,
FIRMA
Тел.: +99999999
Моб.: +99999999
|
Что неясного в тексте просьбы:
Цитата:
Цитата Iska
Образцы файлов, упакованные в архив. »
|
?!
|
Нет. Просто ещё не брался.
|
хорошо ждем, спасибо !!
и еще к информации там файлы с кодировкой unicode...
|
Цитата:
Цитата rested
и еще к информации там файлы с кодировкой unicode... »
|
Собственно, для того, чтобы выяснить исходную кодировку файлов и наличие BOM — и просил файлы в архиве, а не просто в виде текста в посту.
|
Цитата:
Цитата rested
не[]посильная задача ?! »
|
Это вопрос -- или ирония? Если ирония, то если хотите получить ответ -- лучше так не делать.
У вас избыточная постановка задачи. Алгоритм для одного файла более простой, примерно так:
Код:
Цикл:
Проверить начало строки,
Если она начинается с from: то выход из цикла
Прочитать строку и дописать её во временный файл
Проверить, есть ли следующая строка в исходном файле
Если нет, то выход из цикла
Перейти к следующей строке
Конец Цикла
Дописать пустую строку во временный файл
Переименовать исходный в *.bak
Переименовать временный файл в исходное имя
|
пока на дельфи почти все сделали, с вбс не как... видимо не посильно.
|
Цитата:
Цитата rested
и еще к информации там файлы с кодировкой unicode... »
|
Это шутка такая, да? В приведённых Вами файлах — ANSI/1251. Никаким юникодом даже и не пахнет.
Далее — зачем мне два одинаковых файла под разными именами? При нужде я могу проделать то же самое с ничуть не меньшим успехом, получив хоть сотню их. Мне нужны были примеры, образцы. Разные. Я, конечно, ценю юмор, но не настолько.
Да — и при частом повторе:
Цитата:
Цитата rested
пока на дельфи почти все сделали, с вбс не как... видимо не посильно. »
|
он не вызывает ничего, кроме раздражения.
Пробуйте:
читать дальше »
Код:
Option Explicit
Dim strSourceFolder
Dim objFile
Dim objRegExp
Dim strContent
If WScript.Arguments.Count = 1 Then
strSourceFolder = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FolderExists(strSourceFolder) Then
Set objRegExp = WScript.CreateObject("VBScript.RegExp")
With objRegExp
.IgnoreCase = True
.Pattern = ".*(RE:[\S\s]*?)From:.*"
End With
For Each objFile In .GetFolder(strSourceFolder).Files
If LCase(.GetExtensionName(objFile.Name)) = "txt" Then
With .OpenTextFile(objFile.Path)
strContent = .ReadAll()
.Close
End With
If objRegExp.Test(strContent) Then
objFile.Copy .GetBaseName(objFile.Name) & ".bak", True
With .CreateTextFile(objFile.Path)
.WriteLine objRegExp.Execute(strContent).Item(0).Submatches(0)
.Close
End With
End If
End If
Next
Set objRegExp = Nothing
Else
WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
WScript.Quit 2
End If
End With
Else
WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Source folder>"
WScript.Quit 1
End If
WScript.Quit 0
Можно просто перетащить исходную папку на скрипт.
|
Время: 00:04.
© OSzone.net 2001-