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

Kizarek86

Lotus team
20.07.2007
864
4
#1
Возможно ли определить и изменить кодировку txt файла в целом?
 

Omh

Lotus team
04.07.2007
2 210
1
#2
Посмотри, что умеет NotesStream, думаю через него что-то можно сделать :)
 
J

johny

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

Kizarek86

Lotus team
20.07.2007
864
4
#5
Ерюков Алексей
да именно о ней.
johny
файл читать надо, не создавать
 

Kizarek86

Lotus team
20.07.2007
864
4
#7
если открывать файл так:
Call stream.Open(Filename,"????")

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

Guest

#10
У меня реализуется примерно так: в библиотеке есть следующий код:
Код:
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
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#11
Да какая разница? Главное идея. Переделать-то пару минут.