Russian Qt Forum

Qt => Общие вопросы => Тема начата: rims от Февраль 17, 2009, 04:09



Название: Парсить eml файл.
Отправлено: rims от Февраль 17, 2009, 04:09
У меня есть eml файл. Я из него выдрал нужные мне поля. такие как From, To, Subject, Date.
Теперь мне нужно фильтровать их. С полями тапи From, To, Subject не понятно как... так как там возможно есть "не латиница". Тоесть указана кодировка, чем обработано сначала (Base64 или нет).

Есть-ли способ или просто пример как обрабатывать такие поля? Чтобы привести к правильному виду и я мог фильтровать?


Название: Re: Парсить eml файл.
Отправлено: ритт от Февраль 17, 2009, 04:58
какое отношение вопрос имеет к Qt и к работе с сетью?


Название: Re: Парсить eml файл.
Отправлено: rims от Февраль 17, 2009, 05:05
какое отношение вопрос имеет к Qt и к работе с сетью?
1) делаю используя Qt 4.4.3
2) извиняюсь. перенесут, если это критично?


Название: Re: Парсить eml файл.
Отправлено: ритт от Февраль 17, 2009, 07:22
некритично - перенесём...но описание проблемы никуда не годится.
читай документацию по QTextCodec
для base64 аналогично по QByteArray::fromBase64


Название: Re: Парсить eml файл.
Отправлено: rims от Февраль 17, 2009, 07:46
некритично - перенесём...но описание проблемы никуда не годится.
читай документацию по QTextCodec
для base64 аналогично по QByteArray::fromBase64
да если бы была проблема только в том, что перевести из base64...
QByteArray::fromBase64 я конечно видел и читал.
там всякие тэги парсить... думал может кто уже сталкивался с этим, чтобы мне не изобретать велосипед...
я нашел пример, шас привожу в нужный вид. но все равно вопрос еще открыт... вдруг найдется лучшее решение.

на счет описания проблемы... сорри. нечасто спрашиваю в форумах.


Название: Re: Парсить eml файл.
Отправлено: ритт от Февраль 17, 2009, 07:55
а что там парсить-то? всё QRegExp'ом прям на лету можно...
Цитировать
To: =?iso-8859-2?Q?Pawe=B3?= Pavel <123@software.com>
если есть `=??=`, делаешь доп.проверку - забираешь часть строки, отмеченную жирным, и пробуешь создать кодек для этого имени; если получилось, конвертишь данным кодеком в нужную кодировку, иначе фоллбэк или ворнинг/ошибка...

или есть ещё какие-то сложности?


Название: Re: Парсить eml файл.
Отправлено: rims от Февраль 17, 2009, 09:47
а что там парсить-то? всё QRegExp'ом прям на лету можно...
Цитировать
To: =?iso-8859-2?Q?Pawe=B3?= Pavel <123@software.com>
если есть `=??=`, делаешь доп.проверку - забираешь часть строки, отмеченную жирным, и пробуешь создать кодек для этого имени; если получилось, конвертишь данным кодеком в нужную кодировку, иначе фоллбэк или ворнинг/ошибка...

или есть ещё какие-то сложности?
хм.. а ведь точно...
ни когда не работал с регэкспами... пора начинать :)
спасибо.

только... вот с base64 тут просто переведу и все. это где ?B?.
а в вашем примере ?Q?.
это я так понимаю Quoted string? как оно преобразовывается?


Название: Re: Парсить eml файл.
Отправлено: crossly от Февраль 17, 2009, 10:04
а не проще заюзать стороннюю либу... libvmime к примеру...


Название: Re: Парсить eml файл.
Отправлено: rims от Февраль 17, 2009, 10:24
а не проще заюзать стороннюю либу... libvmime к примеру...
о! это то что я и хотел изначально!
сейчас посмотрим :) но и с регэкспами покопаюсь...