powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сохранение в windows-кодировке.
3 сообщений из 3, страница 1 из 1
Сохранение в windows-кодировке.
    #34463067
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть текстовый файл, называется 156.txt. он в dos-кодировке, т.е. блокнот его открывает кракозябрами. мне надо программно его пересохранить в 156_win.txt с windows-кодировкой. как это сделать, подскажите.
...
Рейтинг: 0 / 0
Сохранение в windows-кодировке.
    #34464721
Фотография @TM@ROZчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не париться, а написать для юзера ридми, а для себя огромный плакат "перекодировки через блокнот фарева!!!" :-)
...
Рейтинг: 0 / 0
Сохранение в windows-кодировке.
    #34465042
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, так дело не пойдет. вот что нашла:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Enum idCodePage
    win =  1251 
    dos =  866 
    Koi =  20866 
    Iso =  28595 
    Utf =  65001 
End Enum

Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, _
        ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, _
        ByVal cchWideChar As Long) As Long
Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, _
        ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, _
        ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long

Public Function ConvertCodePage(SourseString As String, inPage As idCodePage, outPage As idCodePage) As String
  Dim LenSourseString As Long
  Dim strFirst As String
  Dim strSecond As String
  Dim RetStrLong As Long
  LenSourseString = Len(SourseString)
  strFirst = String(LenSourseString *  2 , Chr( 0 ))
  strSecond = String(LenSourseString *  2 , Chr( 0 ))
  RetStrLong = MultiByteToWideChar(inPage, &H1, SourseString, LenSourseString, StrPtr(strFirst), LenSourseString)
  RetStrLong = WideCharToMultiByte(outPage,  0 , StrPtr(strFirst), RetStrLong, strSecond, LenSourseString *  2 , ByVal  0 ,  0 )
  ConvertCodePage = Left(strSecond, RetStrLong)
End Function

вроде всё работает, но есть проблема, я заранее не знаю, какая будет кодировка - dos или win. если dos, то в win конвертирует нормально, а если win, то он win в win конвертирует неверное.
вопрос: а как заранее узнать кодировку файла?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сохранение в windows-кодировке.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]