Как ограничить сгенерированное имя файла из сценария VB? - PullRequest
0 голосов
/ 04 мая 2020

Я работаю над проектом, и мне нужно экспортировать существующие заметки из Outlook в текстовый файл. Мне удалось собрать рабочий скрипт, который удаляет запрещенные символы из заметки и называет текстовый файл темой / первой строкой заметки, но я сталкиваюсь с проблемой длины файла. Мне нужно, чтобы скрипт мог обрезать имя файла после числа символов X, чтобы создаваемый текстовый файл не превышал Windows максимальное количество символов. Я не могу понять, как это сделать, не прибегая к общей схеме имен c Note1.txt, Note2.txt, которая не будет работать в ситуации, для которой мне нужны текстовые файлы, они должны сохранять столько же имени, насколько это возможно для последующей идентификации.

Это то, что я имею до сих пор:

Sub NotesToTXT()
    myfolder = "c:\appsnotes\notes\"
    Set sanitize = CreateObject("vbscript.regexp")
 
    sanitize.IgnoreCase = True
    sanitize.Global = True
 
    Set myNote = Application.GetNamespace("MAPI").PickFolder
    For cnt = 1 To myNote.Items.Count
        sanitize.Pattern = "(((?![a-zA-Z0-9,@,{,},#,&,%,=,+,_,-,^,(,),;,',$,,]).) )+"
        noteName = sanitize.Replace(myNote.Items(cnt).Subject, "_")
        sanitize.Pattern = "\-+"
        noteName = sanitize.Replace(noteName, "-")
        myNote.Items(cnt).SaveAs myfolder & noteName2 & ".txt", OlSaveAsType.olTXT
    Next
End Sub

1 Ответ

0 голосов
/ 04 мая 2020

VBA (ни объектная модель Outlook) ничего для этого не предоставляет. Лучшее, что вы можете сделать, - это создать собственные короткие имена, например, на основе имен пользователей, дат и т. Д. c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...