Сейчас я поддерживаю устаревшее приложение VBA / Access 2000 для клиента. У них есть клиент, который отправляет заказы по электронной почте с текстом, похожим на этот
Contact: Peggy Hill
Company: Arlen Residential Mortgage Finance Co
Address: 43456 South 18939 West, Suite 47995
City: Arlen City
ContactState: TX
ContactZip: 88888
Phone: 8019990000
Email: peggy.hill@arlenmortgage.com
DateOrdered: 4/6/09
DateDue: 4/15/09
и т.д ...
В приложении есть класс VBA со всеми атрибутами, но нет возможности разбирать данные в соответствующие поля. Моему клиенту нужна форма, в которую он может вставить текст из электронного письма, проанализировать его для проверки и затем записать в базу данных.
Вопросы / Факты:
- Каждое значение отключается с помощью 'ValueName: "token
- В зависимости от того, как почтовые клиенты обрабатывают строку, может быть или не быть CrLf в конце каждой строки.
- У пропущенных значений будет только токен, нет "" или пробел.
Я хотел бы создать функцию CreateOrder(OrderText As String)
, которая будет считывать текст из формы, но я не знаю, как обрабатывать синтаксический анализ в VBA.
Я начал создавать двумерный массив с предварительно введенными токенами, но это кажется неуклюжим, поскольку я должен прочитать следующий элемент в массиве, чтобы выяснить, когда прекратить принимать данные для предыдущего токена.
Предложения