Определение и изменение кодировки Txt файлов

Тема в разделе "Lotus - Программирование", создана пользователем Kizarek86, 3 июн 2008.

  1. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Возможно ли определить и изменить кодировку txt файла в целом?
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Посмотри, что умеет NotesStream, думаю через него что-то можно сделать :)
     
  3. Гость

    Речь идет о кодировке DOS/WIN?
     
  4. johny

    johny Гость

    возможно, когда создаешь файл указываешь charset и в хелпе есть список кодировок поддерживаемых
     
  5. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Ерюков Алексей
    да именно о ней.
    johny
    файл читать надо, не создавать
     
  6. johny

    johny Гость

    Open FPath$ For Input As fileNum% Charset="ISO-8859-5" - все равно так, открыли файл из директории и указали в какой кодировке его читать
     
  7. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    если открывать файл так:
    Call stream.Open(Filename,"????")

    Какую тут кодировку нужно юзать?
    Все что в хелпе попробовал, один фиг кракозябры одни.
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
  9. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Medevic
    Почти, только наоборот нужна функция to Win)
     
  10. Гость

    У меня реализуется примерно так: в библиотеке есть следующий код:
    Код (Text):
    Dim dos List As String 'в деклареишн
    Dim win List As String
    Sub InitConverter()
    Dim win_ As Variant

    dos_$ = "абвгдеёжзийклмнопрстуфхцчшщъьэюя" + "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЭЮЯыЫ" + "№"

    ' абвгдеёжзийклмнопрстуфхцчшщъьэюя
    winTxt$ = "0 : "
    winTxt$ = winTxt$ + "160 : 1038 : 1118 : 1032 : 164 : 1168 : 1089 : 166 : 167 : 1025 : "
    winTxt$ = winTxt$ + "169 : 1028 : 171 : 172 : 173 : 174 : 1031 : 1072 : 1073 : 1074 : "
    winTxt$ = winTxt$ + "1075 : 1076 : 1077 : 1078 : 1079 : 1080 : 1081 : 1082 : 1084 : 1085 : "
    winTxt$ = winTxt$ + "1086 : 1087 : "

    ' АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЭЮЯыЫ
    winTxt$ = winTxt$ + "1026 : 1027 : 8218 : 1107 : 8222 : 8230 : 1088 : 8224 : 8225 : 8364 : "
    winTxt$ = winTxt$ + "8240 : 1033 : 8249 : 1034 : 1036 : 1035 : 1039 : 1106 : 8216 : 8217 : "
    winTxt$ = winTxt$ + "8220 : 8221 : 8226 : 8211 : 8212 : 63635 : 8482 : 1113 : 1114 : 1116 : "
    winTxt$ = winTxt$ + "1115 : 1119 : 1083 : 8250 : "

    ' №    
    winTxt$ = winTxt$ + "1100"

    win_ = Evaluate ( winTxt$ )

    For i=1 To Len ( dos_$ )
    a$ = Uchr ( win_ ( i ) )
    b$ = Mid ( dos_$ , i , 1 )
    dos ( b$ ) = a$
    win ( a$ ) = b$
    Next
    End Sub

    Function Win2Dos(ValueField_S As String) As String
    TempStr2 = ""
    For k=1 To Len ( ValueField_S )
    ch$ = Mid ( ValueField_S , k , 1 )
    If Iselement ( dos ( ch$ ) ) Then ch$ = dos ( ch$ )
    TempStr2 = TempStr2 + ch$
    Next
    Win2Dos = TempStr2
    End Function

    Function Dos2Win(ValueField_S As String) As String
    TempStr2 = ""
    For k=1 To Len ( ValueField_S )
    ch$ = Mid ( ValueField_S , k , 1 )
    If Iselement ( win ( ch$ ) ) Then ch$ = win ( ch$ )
    TempStr2 = TempStr2 + ch$
    Next
    Dos2Win = TempStr2
    End Function
     
  11. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да какая разница? Главное идея. Переделать-то пару минут.
     
  12. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Всем спасибо.Алексей вам особенно.
     
Загрузка...

Поделиться этой страницей