Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.23;
Скачать: CL | DM;

Вниз

Получение почты в 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;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.02 c
15-1187801365
ferr
2007-08-22 20:49
2007.09.23
Бука.


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


15-1187157030
Alien1769
2007-08-15 09:50
2007.09.23
КМП-2007


15-1188218498
ANTPro
2007-08-27 16:41
2007.09.23
Книги по Windows&Word


2-1188393427
gentos
2007-08-29 17:17
2007.09.23
ActiveCell.FormulaR1C1 = "=SUM(R[-CInt(num)]C:R[-1]C)"