Имя: Пароль:
1C
 
Поменять кодировку текста
0 vpetrov
 
05.08.09
13:16
Привет всем.
Суть следующая - есть текст в кодировке (может быть различной). Определить кодировку могу сторонними средствами. Нужно его прочитать и загрузить в 1С 8.1 в читабельном виде (т.е. win-кодировке). Как можно у текста в файле (txt or doc) поменять кодировку? Желательно командной строкой, ну в любом случае программно.
2 vpetrov
 
05.08.09
13:18
(1) это что было?
3 skunk
 
05.08.09
13:19
что УстановитьТипФайла (SetFileType) уже отменили?
4 genosse
 
05.08.09
13:23
Если до 1С то можешь использовать функцию VBS
Function DosToWin(s)
   Dim i,k,ss
   ss=""
   For i=1 To Len(s)
       k = Asc(Mid(s,i,1))
       If (128 <= k) And (k <= 175) Then
       k=k+64
       ElseIf (224 <= k) And (k <= 239) Then
           k=k+16
       ElseIf k = 240 Then
           k=168
       ElseIf k = 241 Then
           k=184
       End If
       ss=ss+Chr(k)
   Next
   DosToWin=ss
End Function
5 vpetrov
 
05.08.09
14:26
Всем спасибо, скунку - язык
6 vpetrov
 
05.08.09
14:59
С помощью DetectEncoding.dll получилось, что этот текст в кодировке UTF-16 с кодовой страницей 1200. Привожу текст:
????"???????????????????    0,38    5    ???????? ?????????????????? ?? ??????????    ??????????, ??? ?????????????? ??????????????        ??????????, ??????????????????? ???????, 78, ??1, 27    ???????????? ??????????????? ??????????????????????89169537757                                                1    ?????????????????????

Обработать с помощью 1С не получилось.
7 vpetrov
 
05.08.09
15:02
))) Мда. В общем, если установлена поддержка языков Юго-Восточной Азии - то он отображается нормально (в своей кодировке) в Word, однако не переводится в другие кодировки в читабельном виде. Как быть? Текст могу прислать, если нужно.
8 vpetrov
 
05.08.09
15:41
Еще одна кодировка вылезла - ISO-2022-JP. Даже при условии, что она есть в 1С - не получается преобразовать текст в Win или Ansi кодировку. По идее, в тексте русские буквы зашифрованы в японской кодировке, а прочитать не получается. Чешу голову ))) Кто может начесал уже чего?
9 Живой Ископаемый
 
05.08.09
15:44
Можно попробовать воспользоваться объектом ИзвлечниеТекста...
только расширение не должно быть TXT
ИзвлечениеТекста.ПолучитьТекст (TextExtraction.GetText)
ИзвлечениеТекста (TextExtraction)
ПолучитьТекст (GetText)
Синтаксис:
ПолучитьТекст()
Возвращаемое значение:
Тип: Строка. Текст, извлеченный из файла, или пустая строка в случае ошибки.
Описание:
Извлекает текст из файла. Тип файла определяется по расширению файла (т.е. текст из файла с расширением .tmp извлечен не будет). Для извлечения текста из файлов используется интерфейс IFilter. Он является расширяемым. Можно установить дополнительные модули, чтобы появилась возможность извлекать текст из еще одного типа файлов. По умолчанию текст извлекается из файлов следующих типов (имеющих расширение): ASCX, ASP, ASPX, CSS, HHC, HTA, HTM, HTML, HHT, HTW, HTX, ODC, STM, DOC, DOT, POT, PPS, PPT, XLB, XLC, XLS, XLT, TXT, EML. Подразумевается, что файлы с расширением TXT - это текстовые файлы в кодировке ANSI или UNICODE (UTF-16).
Примечание:
Следует использовать только в среде Windows NT 4.0, 2000, XP.
Чтобы узнать, какие расширения для IFilter уже установлены на вашем компьютере, можно скачать и установить программу IFilter Explorer (http://www.citeknet.com).
Пример:
ИмяФайла = "C:/log.txt";
Объект = Новый ИзвлечениеТекста(ИмяФайла);
Текст = Объект.ПолучитьТекст();
Сообщить(Текст);
====
И потом уже полученный текст записать в выбранной кодироке