webding | Mais on peut faire ca en VBS:
oem2ansi fichier1originale fichier2sortie
Code :
- ' ----------------------------------------------------------
- ' 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
- ' -------------------------------------
|
Message édité par webding le 12-04-2007 à 12:25:49
|