helpf.pro
Регистрация
 0 
Распечатать

Пример чтения текста в кодировке ISO

Код 1C v 7.x
 
Функция Перекодировка(Стр="",Кодировка="windows-1251")
Стрим = СоздатьОбъект("Adodb.Stream");
Стрим.Type = 2;
Стрим.Mode= 3;
Стрим.charset="iso-8859-5";
Стрим.Open();
Стрим.WriteText(Стр);
Стрим.Position=0;
Стрим.charset=Кодировка;
Рез=Стрим.ReadText(-1);
Стрим.Close();
Возврат Рез;
КонецФункции

//Если предыдущая функция не срабатывает, то попробуйте:
Стрим = СоздатьОбъект("Adodb.Stream");
Стрим.charset="iso-8859-5";
Стрим.Open();
Стрим.LoadFromFile("c:\WORK\H R\PSHRR848.C");
Стрим.Position=0; // здесь уже можно дергать нормальный текст

Стрим2 = СоздатьОбъект("Adodb.Stream");
Стрим2.charset="windows-1251";
Стрим2.Open();
Стрим2.WriteText(Стрим.ReadText);
Стрим2.Position=0;
Рез=Стрим2.ReadText(-1);
Стрим.Close();
Стрим2.Close();
//Выведем в Сообщить результаты
Message("2 = "+Рез);
Message("StrLen(Рез) = "+StrLen(Рез));

// Кратко
Стрим = СоздатьОбъект("Adodb.Stream");
Стрим.charset="iso-8859-5";
Стрим.Open();
Стрим.LoadFromFile("c:\WORK\H R\PSHRR848.C");
Рез=Стрим.ReadText();



Код 1C v 7.x
  //Код где, ни единого объекта. smaharbA
Процедура Сформировать()
Стр="Нажрися вотки и закуси ка селедкой! ";
База=""+_GetPerformanceCounter()+".txt";
УТФ=КаталогВременныхФайлов()+"УТФ"+База;
ИСО=КаталогВременныхФайлов()+"ИСО"+База;
ДОС=КаталогВременныхФайлов()+"ДОС"+База;
ОбратноДОС=КаталогВременныхФайлов()+"ОбратноДОС"+База;
Текст=СоздатьОбъект("Текст");
Текст.КодоваяСтраница(1);
Для Сч=1 По 10 Цикл
Текст.ДобавитьСтроку(Стр);
КонецЦикла;
Текст.Записать(ДОС);
Текст.Очистить();
КомандаСистемы("chcp 28595 > nul & echo off 2> """+ИСО+""" & for /f ""delims="" %i in ("+ДОС+") do (chcp 28595|>> """+ИСО+""" echo %i)");
// КомандаСистемы("cmd /c ""chcp 28595|> """+ИСО+""" echo "+Стр+"""");
Текст.КодоваяСтраница(0);
Текст.ДобавитьСтроку(Симв(255)+Симв(254));
Текст.Записать(УТФ);
КомандаСистемы("chcp 28595|> nul echo & cmd /u /c type """+ИСО+""" >> """+УТФ+"""");
КомандаСистемы("type """+УТФ+""" > """+ОбратноДОС+"""");
Текст.КодоваяСтраница(1);
Текст.Открыть(ОбратноДОС);
Для Сч=1 По Текст.КоличествоСтрок() Цикл
Сообщить(Текст.ПолучитьСтроку(Сч));
КонецЦикла;
КонецПроцедуры
Разместил:   Версии: | 7.x |  Дата:   Прочитано: 16912
 0 
Распечатать
Возможно, вас также заинтересует
Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C 4
При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки :( Путем тестов было вяснено, что проблема
Быстрый перенос списка баз с одного компьютера на другой 0
Для 8.1 : 1. Список баз 8.1 можно сохранять в файл.Для этого правой кнопкой мыши по корневому элементу " Информационные базы " , далее " Сохранить ссылку в файл " . 2. Получаем файл с расширением v8i , это текстовый файл в кодировке UTF-8. Ес
Вывести список элементов справочника в Word используя шаблон spisok.dot 0
Процедура ВывестиСписокЭлементовСправочникаВWord() спр1=создатьобъект(" справочник.сотрудники" ); спр1.ИспользоватьДату(ТекущаяДата()); Сообщить( спр1.НайтиПоНаименованию(" Администрация" ,0,1)); Сообщить(спр1.ПолучитьАтрибут(" Наименование" ))
ЗаписатьДатуJSON() в 1С 8.3: 0
Процедура ПреобразованиеДатыВДатуJSON() // Пример: 12.08.2023 09:15:29 ТестДата = Дата("20230812091529"); // Вариант записи - "ЛокальнаяДата" // Локальная дата без указания часового пояса. // // Преобразует дату в "2023-08-12T09:15:29
Запись СД из 1С(без ВК и других программ, проверено на ХР/2003) 0
Процедура Сформировать(ДискДляЗаписи=" E:" ,АвтоИзвлечениеСД=0,АвтоЗакрытиеМастера=1) Перем Имя,Каталог; scr=СоздатьОбъект(" MSScriptControl.ScriptControl" ); scr.language=" javascript" ; shell=СоздатьОбъект(" Shell.Application" ); scr.AddOb
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.