Проверка кодовой страницы файла #300932


#0 by Кукуев
В обработке открываю каталог, где находятся файлы *.txt, нужно проверить кодовую страницу этих файлов, и если она не Dos, то сообщить об этом. Согласно описанию, <Режим>    Необязательный параметр. Числовое выражение: 0 — Windows-кодировка, 1 — DOS-кодировка. Если параметр не задан, то режим кодировки не меняется (используется для определения текущего режима кодировки без его смены). Вот, вроде бы, и нужно мне только определить текущий режим кодировки, но не отрабатывает, как хотелось бы. Проверяю на каталоге, где заведомо один из файлов в Win кодировке, а остальные в Dos, но по всем файлам выдает в Сообщить только 0. Вот код: Процедура ВыбратьКаталог Путь к файлам пробовал указывать по-разному, и полный путь, и только имя файла, но при этом ругается на неверный путь… В        Сообщить("Файл - " + ПутьКФайламИФайл); показывает верный путь к файлу, а вот в        Сообщить(Загрузка.КодоваяСтраница); по всем файлам показывает 0. Я, наверное, неправильно использую КодоваяСтраница… Подскажите, как можно правильно определить кодовую страница файла при выборе каталога?
#1 by ТелепатБот
#2 by Кукуев
В строке Сообщить(Загрузка.КодоваяСтраница); конечно же, ошибка... при копировании... нужно Сообщить(Текст.КодоваяСтраница);
#3 by IUnknown
чем бы дитя не тешелось, лишь бы за пипиську себя не дергала... скажи, мил человек, чем отличаються файлы в дос кондировке от файлов в виндовс кодировке?
#4 by Кукуев
Если бы я знал это точно - скорее всего, я бы не создавал таких тем... Я загружаю эти файлы из другой программы, которая их выдает в Dos-кодировке, и если по какой-то причине попал файл в Win кодировке, то, естественно, в справочник записываются кракозябры... Вот и хотелось бы сразу, при выборе каталога, определить кодовую страницу файла и сделать предупреждение...
#5 by ZanderZ
"КаталогПуть = ИмяКаталога + "";" проверяй вначале н наличие "" на конце а потом присваивай "ИФ = ФС.НайтиПервыйФайл("*.txt");" делай ИФ = ФС.НайтиПервыйФайл(КталогПуть+"*.txt");    КонецЕсли;"  - это зачем если ты только txt указал то тогда
#6 by IUnknown
они абсолютно ничем не отличаються... и никаким макаром ты не отличишь файл в формате КОИ от формата Кирилик(Виндовс)
#7 by IUnknown
если на то пошло... доверь определять это пользователю... на глазок
#8 by Кукуев
Попробовал поменять на предложенное, но вообще не стало выдавать никаких сообщений... Хотя в моем случае при выборе каталога файлы, которые в нем находятся, копируются в каталог архива и во временный каталог (с измененным расширением), для дальнейшей обработки... но вот с кодовой страницей не получается решить вопрос... Если они ничем не отличаются - как-то все-же можно определить их кодовую страницу, чтобы не загружать кракозябры?
#9 by Кукуев
На глазок, конечно, можно, для этого, как я думаю, нужно вывести файл на просмотр, пробовал так, но как-то это не хорошо, да и файлов может быть много... Все-таки, есть, наверное, какой-то способ определить кодировку...
#10 by IUnknown
блин создай два файла типа йцукенгшщзхъфывапролджэячсмитьбюё ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ только один в КОИ-8 ... а другой в вин-1251 ... а потом сравни их в любом шенадцатиричном редакторе
#11 by Кукуев
Ну не сердись ты! Если знаешь - подскажи как проверить файлы при выборе каталога, чтобы в справочник кракозябры не попали...
#12 by IUnknown
да я тебе говорю, что никак... только на глазок... ибо то что ты в винде видишь как букву "К" в ДОСе ты видишь как "л" ... но обе имеют один и тот же код 202... и никаким макором другой программе не опазнать где и как добавили в данный файл код 202
#13 by Кукуев
Спасибо, понятно... Буду искать другой вариант, может, через просмотр, т.е. глазками... вот только ввела в заблуждение фраза из описания... <Режим>    Необязательный параметр. Числовое выражение: 0 — Windows-кодировка, 1 — DOS-кодировка. Если параметр не задан, то режим кодировки не меняется (используется для определения текущего режима кодировки без его смены) и подумал, что как раз для моего случая...
#14 by IUnknown
что внутрях твоих файлов? ... там постоянно все менятся или есть что-то общее для всех
#15 by Кукуев
внутри файлов строки, данные документов, с контагентами, наименованиями, суммами... одна строка - один документ... первой строкой всегда идет строка с датой и временем формирования файла, естественно, всегда разная Что-то интернет сегодня не на шутку нлючит...
#16 by IUnknown
дата вида "09.01.07" или "9 января 2007" ... есть ли где ключевые слова типа "Документ", "Расходная", "Накладная"...
#17 by wise
если файлы формируются программно, то может указать кодировку в первой строке файла, а при загрузке считать...?
#18 by Кукуев
Дата вида 17/08/2007;11:11 и нет слов тиких как Документ, в смысле - ключеных... Было бы это хорошо, но принимаемый файл изменить не получится (одно из уловий, не мое...)
#19 by IUnknown
если бы можно было что-то добавить вопрос о кодировке бы не стоял... покажи несколько пару другую шапек этих файлов(и досовских и виндовых)... верхнии три-четыре строки... имеющих, что-то общее
#20 by Кукуев
Прошу прощения за долгое отсутствие - были ремонтные работы в здании, с отключением электричества. Я, честно говоря, не ожидал, что проверка кодировки выльется в такую проблему, но если это так - то шут с ней, с этой проверкой, оставлю пока без проверки, в надежде, что получать придется только нормальные файлы, в нужной кодировке. Спасибо откликнувшимся, тему можно закрыть...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С