Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Вниз

Получение почты в Delphi   Найти похожие ветки 

 
Anatoly Podgoretsky ©   (2007-08-28 10:55) [40]


> Если указать только имя то в папку с проектом,

Заблуждение


 
DimOk ©   (2007-08-28 11:00) [41]


> Заблуждение

Но я все равно указываю путь куда его сохранять, а имя файла у меня состоит из кракозябр, поэтому он и не сохраняется - я так думаю, видимо проблемма в кодировке.....


 
DimOk ©   (2007-08-28 11:02) [42]


> Как и предполагалось - обманывал нас.

Только вот имя файла не совсем на русском языке - отсюда и ошибка при сохранении (я так думаю)


 
DimOk ©   (2007-08-28 11:07) [43]


> Только вот имя файла не совсем на русском языке - отсюда
> и ошибка при сохранении (я так думаю)

Да. С англ. названиями все просто замечательно, а вот русские имена не сохраняет.


 
DimOk ©   (2007-08-28 11:13) [44]


> А чего смотреть и так ясно, что он равен информации в письме,
>  если она прописана.
> Его возможно надо обработать до допустимого и указать куда
> сохранять, как это делают почтовики, а не а бы куда и черт
> знает что записать.

Да вы правы, сейчас попробовал - не сохраняет пишет eerror saving attachment.
Но как быть с русскими названиями файлов - AttacmentEncoding...? Или что то другое?


 
umbra ©   (2007-08-28 11:15) [45]


> Только вот имя файла не совсем на русском языке

что-то наподобие этого:
=?koi8-r?B?09fJztjJLnJ0Zg==?=


 
DimOk ©   (2007-08-28 11:16) [46]


> что-то наподобие этого:
> =?koi8-r?B?09fJztjJLnJ0Zg==?=

Да. только расширение правильно показывает :)


 
umbra ©   (2007-08-28 11:19) [47]


> только расширение правильно показывает

что-то не верится. Показывает или все или ничего.


 
DimOk ©   (2007-08-28 11:21) [48]


> что-то не верится. Показывает или все или ничего.

В отладчекн в Вач Виндов MyMessage.MessageParts.Items[i]).FileName Value = вот типо этого r?B?09fJztjJLnJ0Zg.zip


 
umbra ©   (2007-08-28 11:24) [49]


> r?B?09fJztjJLnJ0Zg.zip

полный бред. такого быть не может.


 
DimOk ©   (2007-08-28 11:26) [50]


> полный бред. такого быть не может.

Сейчас дословно напишу


 
Anatoly Podgoretsky ©   (2007-08-28 11:28) [51]


> > Как и предполагалось - обманывал нас.
>
> Только вот имя файла не совсем на русском языке - отсюда
> и ошибка при сохранении (я так думаю)

Ты не здесь обманывал, речи о сохранение и быть не могло, у тебя даже программа не компилировалась!


 
DimOk ©   (2007-08-28 11:29) [52]


> > r?B?09fJztjJLnJ0Zg.zip
>
> полный бред. такого быть не может.

"=?koi8-r?B?99nH0tXay8E=?=.xml"
имя файла Выгрузка.xml


 
Anatoly Podgoretsky ©   (2007-08-28 11:30) [53]

> umbra  (28.08.2007 11:24:49)  [49]

Продолжает лапшу на уши вешать.


 
DimOk ©   (2007-08-28 11:31) [54]


> Ты не здесь обманывал, речи о сохранение и быть не могло,
>  у тебя даже программа не компилировалась!

Ошибаетесь, компилировалась и текты ошибок были из RUN Time


 
umbra ©   (2007-08-28 11:33) [55]


> омпилировалась и текты ошибок были из RUN Time

вот это:


> Пишет - ундекларе идентифер Items[i]

точно не из рантайм.


 
DimOk ©   (2007-08-28 11:33) [56]


> Продолжает лапшу на уши вешать.

У меня файлы уже сохраняются только с англ. названиями
По поводу компиляции я даже и не спрашивал..... если что. А вопрос как "русские" файлы сохранить.


 
DimOk ©   (2007-08-28 11:38) [57]

К стати большое спасибо umbra за то что помог и помогает разбираться с этой задачей, но пока она выполняется до конца (русские имена так и не сохраняются)........:(


 
DimOk ©   (2007-08-28 11:43) [58]


> точно не из рантайм.

Извеняюсь в отладчике, но при компиляции не ругался.


 
DimOk ©   (2007-08-28 11:46) [59]

Я уже на 100% уверен что дело в имени файла т.к.  оно содержит спецсимволы (если прикрепленный файл на русском языке)


 
umbra ©   (2007-08-28 12:05) [60]


> =?koi8-r?B?99nH0tXay8E=?=

после первого знака вопроса - кодировка названия
после второго - способ кодировки для передачи, В - Base64, Q - quoted-printable
после третьего и до последнего - само название. Чтобы его восстановить, надо перевести из Base64 - получится название в koi8-r. Затем надо из koi8-r перевести в windows-1251 (если надо)


 
DimOk ©   (2007-08-28 12:10) [61]


> после первого знака вопроса - кодировка названия
> после второго - способ кодировки для передачи, В - Base64,
>  Q - quoted-printable
> после третьего и до последнего - само название. Чтобы его
> восстановить, надо перевести из Base64 - получится название
> в koi8-r. Затем надо из koi8-r перевести в windows-1251
> (если надо)

Это все можно зделать в Delphi?


 
DimOk ©   (2007-08-28 12:30) [62]


> Это все можно зделать в Delphi?

Вернее в каком направлении капать.


 
umbra ©   (2007-08-28 12:45) [63]

для Base64 есть, например, TIdDecoderMIME или функция DecodeString из модуля EncdDecd.pas
для koi8-r - полно реализаций на делфи в интернете, да и свою написать можно.


 
DimOk ©   (2007-08-28 12:50) [64]


> для Base64 есть, например, TIdDecoderMIME или функция DecodeString
> из модуля EncdDecd.pas
> для koi8-r - полно реализаций на делфи в интернете, да и
> свою написать можно.

Большое спасибо за помощь. :)


 
DimOk ©   (2007-08-28 13:28) [65]

file_name := IdDecoderMIME1.DecodeString(String(TIdAttachment(MyMessage.MessageParts.Items[i] ).FileName));
Можно ли так делать, что то ошибочка вылетает: Uneven  size in decode ToStream


 
umbra ©   (2007-08-28 13:31) [66]


> Можно ли так делать,

нельзя. декодировать надо только само название, а не все значение FileName. См. [60]


 
DimOk ©   (2007-08-28 13:34) [67]


> нельзя. декодировать надо только само название, а не все
> значение FileName. См. [60]

Тогда вопрос, как эту строку можно разобрать по разделителям, есть ли оналог функции Delin из VB или здесь другой подход нужен?


 
DimOk ©   (2007-08-28 13:37) [68]


> есть ли оналог функции Delin из VB или здесь другой подход
> нужен?

аналог функции Delim :) извеняюсь


 
DimOk ©   (2007-08-28 15:03) [69]


> нельзя. декодировать надо только само название, а не все
> значение FileName. См. [60]

Получилось, достать имя файла, но при декодировании всеравно выходит чушь, но теперь без спец символов и сохраняеся, т.е. я так думаю надо перегнать строку в  windows-1251, если это так, то как это зделать? Дайте напрвление пожалуйсто.


 
umbra ©   (2007-08-28 15:09) [70]


> надо перегнать строку в  windows-1251,

надо


> Дайте напрвление пожалуйсто.

http://ru.wikipedia.org/wiki/%D0%9A%D0%9E%D0%98-8

Берете каждый символ строки и, если его код больше 127 ($79), заменяете на нужный символ из windows-1251


 
DimOk ©   (2007-08-28 15:18) [71]


> http://ru.wikipedia.org/wiki/%D0%9A%D0%9E%D0%98-8
>
> Берете каждый символ строки и, если его код больше 127 ($79),
>  заменяете на нужный символ из windows-1251

Спасибо.
Всем большое спасибо. Если эта тема больше ни каму не интересна предлогаю ее закрыть.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.06 c
15-1187943714
ArtemESC
2007-08-24 12:21
2007.09.23
Как научить ребёнка четырех лет играть в шахматы?


2-1188302008
Евгений Р.
2007-08-28 15:53
2007.09.23
KeyDown у tPanel


2-1188261728
ven0m
2007-08-28 04:42
2007.09.23
Доступ к элементам веб-формы


8-1165841324
SoulFlow
2006-12-11 15:48
2007.09.23
Зрительные образы Winamp


15-1187908633
ElectriC
2007-08-24 02:37
2007.09.23
Учитель С++ :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский