2015-12-29 3 views
0

Я пишу vbs, который проверяет прилагаемый набор инициалов в теме письма на определенный день, а затем выводит отчет на основе результатов. У меня это работает, но это очень медленно. В папке, в которой выполняется поиск, содержится несколько тысяч электронных писем, поэтому, возможно, это просто так, но мне просто интересно, есть ли у кого-нибудь идеи относительно того, как ускорить это?Разбор большого почтового ящика Outlook с VBS

Ниже приведена часть кода, на которое выполняется время. Push - это просто вспомогательная функция, которая помещает элемент в массив;

`For Each oItem In cItems 
if TypeName(oItem) = "MailItem" then 
dateTemp = Formatdatetime(oItem.ReceivedTime, 2) 
    If datevalue(dateTemp) = datevalue(requiredDate) Then 
    test = oItem.subject 
     if mid(test, 1, 1) = "[" AND mid(test, 4, 1) = "]" then 
      push subjectArray, test 
     end if 
    end if 
end if 
Next` 
+0

Ваш лучший выбор - это фильтрация сообщений на стороне сервера. Дайте этот снимок: https://msdn.microsoft.com/en-us/library/ms526895(v=exchg.10).aspx – Tomalak

+0

Кроме того, для случая, когда 'subjectArray' является фактическим массивом и' push' является Sub, который включает в себя 'ReDim Preserve', вы должны переключиться на Scripting.Dictionary для хранения. Родные массивы в VBS являются расточительными, негибкими и не стоят хлопот, если они не являются постоянными по размеру. – Tomalak

+0

@Tomalak Они также намного эффективнее * (особенно большие наборы данных) *, а затем использовать любую форму COM-объекта даже в 'Scripting.Dictionary'. Лично собственные массивы столь же гибкие, как и нужно, просто требуют планирования, как вы намереваетесь их использовать, прежде чем обнаружите, что вам не хватает. – Lankymart

ответ

0

Ваш лучший выбор для разбора элементов быстро, чтобы использовать таблицу Объект: https://msdn.microsoft.com/en-us/library/ff869529.aspx

Если вы хотите все возможное в производительности, используйте интерфейс MAPI непосредственно с C++ (или Redemption COM) с многопоточности.

Смежные вопросы