Dos to Win encodding
От: Аноним  
Дата: 06.12.07 10:50
Оценка:
Плиз, подскажите, нужно перекодировать содержание файлика из досовской в виндовую кодировку, при этом читать и писать в один файл. Вот такой скриптец выполняется без ошибок, но получается пустышка, кодировка не меняется, подскажите чего поменять в нем?
Dim l_lReturn, l_sSource, l_sDestination, fso, f 
Function oemtochar(s) 
Dim i,k
  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 
    l_sSource=l_sSource+Chr(k) 
  Next 
oemtochar=l_sSource 
Const ForReading = 1, ForWriting = 2 
   Set fso = CreateObject("Scripting.FileSystemObject") 
   Set f = fso.OpenTextFile("c:\print.txt", ForReading) 
   l_sSource =   f.ReadAll 
f.close 
   l_sDestination = Space(Len(l_sSource)) 
   l_lReturn = oemtochar(l_sSource, l_sDestination) 
   Set f = fso.OpenTextFile("c:\print.txt", ForWriting, True) 
   f.write l_sDestination 
f.close
End Function
Re: Dos to Win encodding
От: ZAMUNDA Земля для жалоб и предложений
Дата: 06.12.07 15:02
Оценка:
А чем тебе StrConv не угодил?
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Re[2]: Dos to Win encodding
От: PA  
Дата: 06.12.07 21:36
Оценка: 7 (1)
ZAM>А чем тебе StrConv не угодил?

Видимо, тем, что в VBScript не доступен.
Да и для перекодировки OEM -> ANSI малопригоден...




Аноним>Плиз, подскажите, нужно перекодировать содержание файлика из досовской в виндовую кодировку,
Аноним>при этом читать и писать в один файл

Примерчик:

    Dim strBuffer

    Const adSaveCreateOverWrite = 2

    With CreateObject("ADODB.Stream")
        .Open
        .Charset = "cp866"
        .LoadFromFile "print.txt"
        strBuffer = .ReadText
        .Position = 0
        .SetEOS
        .Charset = "windows-1251"
        .WriteText strBuffer
        .SaveToFile "print.txt", adSaveCreateOverWrite
    End With
Re: Dos to Win encodding
От: v14d  
Дата: 23.02.08 22:39
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Плиз, подскажите, нужно перекодировать содержание файлика из досовской в виндовую кодировку, при этом читать и писать в один файл. Вот такой скриптец выполняется без ошибок, но получается пустышка, кодировка не меняется, подскажите чего поменять в нем?


Попробуй
chWin = Chr(AscB(Mid(s,i,1)))
должно сработать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.