Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 сен 2024, 10:20

Очень интересный способ! Как из данных достать текст?

Автор zkolenko, 18 мая 2011, 15:16

0 Пользователей и 1 гость просматривают эту тему.

zkolenko

Цитата: zkolenko от 18 мая 2011, 16:09
Описание:
Тип: ДвоичныеДанные. Содержит текстовые данные сообщения. Данные были только раскодированы, но работы над кодировкой текстов не производилось.
В описании типа, написано что данные двоичные, а они шестинадцатеричные...

zkolenko

Вот спасибочки sergejK74.
Я вчера сделал функцию которая раскодирует, но у меня получилось не так универсально.
Я взял соответствия шестнадцатеричных кодов и из символов из http://www.script-coding.com/CodePages.html ,
создал соответствия кода к символу и каждый код сравнивал с таблицей соответствий и получал правильный символ.
прикрепляю функцию, для теста, какая она у меня, в прикрепленном файле.

zkolenko

Опять таки все было бы хорошо, если бы не было плохо.
Только решил одну проблему --> как из кустов выпрыгнула другая!
В 1с-8.2 у класса ИнтернетТекстПочтовогоСообщения есть интересные для меня свойства Данные и Текст.
В свойстве текст находится сам текст полученного сообщения, но вместо русских символов он имеет не пойми что, и игра с изменением свойства кодировка как у текста сообщения, так и у самого сообщения мне ни разу не улыбнулась и не исправила эти кракозябы в русские символы.
Но вот в свойстве данные , как указано разработчиком, храниться тот же текст сообщения, но только в шестнадцатеричных данных, и раскодировав их я получаю читабельный текст.
Но УВЫ и АХ, почему-то в свойстве данные находиться только часть информации из текста письма (ну типо почему-то там не все данные, не весь текст).
Вот прикрепляю текст того как выглядят текст в свойстве данные и текст в свойстве текст.
Может кто знает почему, почему, почему, по...ему, непой....му ТАК !!!!!!!!!!!!!!!

zkolenko

sergejK74 и cska-fanat-kz буду давать спасибо за каждую подсказку !  ... и не только им :)

cska-fanat-kz

Шантаж? ;)
Ну так я за репутацией не гонюсь...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

zkolenko

Цитата: cska-fanat-kz от 19 мая 2011, 10:57
Шантаж? ;)
Ну так я за репутацией не гонюсь...
По просьбе трудящихся предлагаю тому, кто подскажет куда копать, положу на указанный им телефон от 10 до 30 деревянных бублей.
А то что получается, зря старался в направлении раскодировки данных шёл, и уперся в стенку.
Нет!!!!
Задачу надо решить, порешить и вырешить чего бы и как бы.... дел сделать нужно и можно!

zkolenko

Сегодня вечером перелапачу интернет и завтра если найду ответ на вопрос, обязательно напишу его здесь. Чтобы для программистов-жаждущих знаний, у которых возникнет такой же вопрос - уже был ответ !!!!!

zkolenko

Разобрался почему при получении интернет почты в двоичных данных не весь текст письма отображается!
Так как в двоичные данные можно запихнуть много чего (текст, фотографии и тд) то когда читаешь двоичные данные в переменную например
перемДвоичныеДанные = Письмо.Тексты.Получить(0).Данные;
В целях наверно понятно каких в переменную перемДвоичныеДанные записывается только ограниченное число (около 350 знаков) этих двоичных данных.
Двоичные данные можно полностью прочитать только воспользовавшись методом двоичных данных ЗАПИСАТЬ(<ИмяФайла>) и потом просто открыть этот файл.

Все началось с того что при получении интернет почты вместо русских букв были кракозябки, я решил так как в двоичных данных храниться текст, еще не имеющий никакой кодировки, то с помощью вышеописанных функций привести его к удобопонимаемому тексту.
Теперь я понимаю что не туда я копал.
Нужно было эти двоичные данные сохранить в текстовый файл, тогда они сами примут нужную кодировку, а потом считать их из файла и делать с ними что нужно.

Вот так нужно было делать:

    Почта.Подключиться(Профиль);
    Письма = Почта.Выбрать(Ложь);
   Для Каждого Письмо Из Письма Цикл
      ДанныеПисьма = Письмо.Тексты.Получить(0).Данные;
      ДанныеПисьма.Записать("C:\InMessage.txt");
   КонецЦикла;
   Почта.Отключиться();


zkolenko


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск