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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| ' ----------------------------------------------------------
' Script de Conversion ANSI -> OEM
'
' Syntaxe:
' oem2ansi <srce> <dest>
' <srce> : fichier source (texte ANSI)
' <dest> : fichier destination (texte OEM)
'
' JC BELLAMY © 2002
' ----------------------------------------------------------
Dim ansi
ansi=array( _
"00","01","02","03","04","05","06","07","08","09","0A","0B","0C","0D","0E","0F", _
"10","11","12","13","14","15","16","17","18","19","1A","1B","1C","1D","1E","1F", _
"20","21","22","23","24","25","26","27","28","29","2A","2B","2C","2D","2E","2F", _
"30","31","32","33","34","35","36","37","38","39","3A","3B","3C","3D","3E","3F", _
"40","41","42","43","44","45","46","47","48","49","4A","4B","4C","4D","4E","4F", _
"50","51","52","53","54","55","56","57","58","59","5A","5B","5C","5D","5E","5F", _
"60","61","62","63","64","65","66","67","68","69","6A","6B","6C","6D","6E","6F", _
"70","71","72","73","74","75","76","77","78","79","7A","7B","7C","7D","7E","7F", _
"5F","5F","27","9F","22","2E","C5","CE","5E","25","53","3C","4F","5F","5A","5F", _
"5F","27","27","22","22","07","2D","2D","7E","54","73","3E","6F","5F","7A","59", _
"FF","AD","BD","9C","CF","BE","DD","F5","F9","B8","A6","AE","AA","F0","A9","EE", _
"F8","F1","FD","FC","EF","E6","F4","FA","F7","FB","A7","AF","AC","AB","F3","A8", _
"B7","B5","B6","C7","8E","8F","92","80","D4","90","D2","D3","DE","D6","D7","D8", _
"D1","A5","E3","E0","E2","E5","99","9E","9D","EB","E9","EA","9A","ED","E8","E1", _
"85","A0","83","C6","84","86","91","87","8A","82","88","89","8D","A1","8C","8B", _
"D0","A4","95","A2","93","E4","94","F6","9B","97","A3","96","81","EC","E7","98")
ForReading = 1
ForWriting = 2
Dim args, fso, fsrce, fdest
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set args = Wscript.Arguments
' Conversion OEM -> ANSI
If args.count<2 Then
strFullName =lcase(WScript.FullName)
i=InStr(1,strFullName,".exe",1)
j=InStrRev(strFullName,"\",i,1)
strCommand=Mid(strFullName,j+1,i-j-1)
if strCommand<>"cscript" then
Mess= "Conversion ANSI -> OEM" & VBCRLF
Mess=Mess & "JCB © 2002" & VBCRLF
Mess=Mess & "----------------------" & VBCRLF
Mess=Mess & "Syntaxe : " & VBCRLF
Mess=Mess & " ansi2oem <srce> <dest>" & VBCRLF
Mess=Mess & " <srce> : fichier source (texte ANSI)" & VBCRLF
Mess=Mess & " <dest> : fichier destination (texte OEM)" & VBCRLF
Mess=Mess & "NB: pour utiliser les flux standards 'stdin' et 'stdout'," & VBCRLF
Mess=Mess & " le moteur de script par défaut doit être cscript.exe" & VBCRLF
Mess=Mess & " Cela s'obtient par la commande : " & VBCRLF
Mess=Mess & " cscript //H:CScript //S /Nologo" & VBCRLF & VBCRLF
Mess=Mess & "Si le script récupère en entrée la sortie d'un autre logiciel (piping)," & VBCRLF
Mess=Mess & "il faut indiquer explicitement 'cscript'" & VBCRLF
Mess=Mess & "Exemple :" & VBCRLF
Mess=Mess & "c:\>appliansi.exe | cscript ansi2oem.vbs > test.txt" & VBCRLF & VBCRLF
wscript.echo Mess
wscript.quit
else
Pipe=true
Set fsrce = WScript.StdIn
Set fdest = WScript.StdOut
end if
else
Pipe=false
srce=args(0)
dest=args(1)
If not fso.FileExists(srce) Then
Mess="Le fichier " & srce & " n'existe pas"
wscript.echo Mess
wscript.quit
End If
Set fsrce=fso.OpenTextFile(srce, ForReading)
Set fdest=fso.OpenTextFile(dest, ForWriting,true)
End If
While not fsrce.AtEndOfStream
oldline=fsrce.ReadLine
newline=""
For i = 1 To len(oldline)
oldc=asc(mid(oldline,i,1))
newc=ansi(oldc)
newline=newline & chr(hextobyte(newc))
Next
fdest.WriteLine newline
Wend
fdest.close
fsrce.close
'If not pipe Then wscript.echo "Conversion terminée"
Wscript.quit
' Utilitaires de conversion hexadécimale
' -------------------------------------
Function hextobyte(s)
c1=Left(s,1)
c2=Right(s,1)
hextobyte=hextobin(c1)*16+hextobin(c2)
End Function
' -------------------------------------
Function hextobin(c)
Select Case c
Case "0","1","2","3","4","5","6","7","8","9"
hextobin=asc(c)-asc("0")
Case else
hextobin=asc(c)-asc("A")+10
End Select
End Function
' ------------------------------------- |
Partager