Сейчас я поддерживаю устаревшее приложение 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: [email protected]
DateOrdered: 4/6/09
DateDue: 4/15/09
и т.д...
Приложение имеет класс VBA со всеми атрибутами, но не может разобрать данные в соответствующие поля. Моему клиенту нужна форма, в которую он может вставить текст из электронного письма, проанализировать его в полях для проверки, а затем записать в базу данных.
Проблемы/Факты:
- Каждое значение устанавливается с помощью токена 'ValueName: "
- В зависимости от того, как почтовые клиенты искажают строку, в конце каждой строки может быть или не быть CrLf.
- Отсутствующие значения будут иметь только токен, без "" или пустого места.
Я хотел бы создать функцию CreateOrder(OrderText As String), которая будет читать текст из формы, но я понятия не имею, как обрабатывать синтаксический анализ в VBA.
Я начал создавать 2D-массив с предварительно введенными токенами, но это кажется неуклюжим. так как я должен прочитать следующий элемент в массиве, чтобы выяснить, когда прекратить прием данных для предыдущего токена.
Предложения?