IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

shell ansi to OEM


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut shell ansi to OEM
    Bonjour,

    J'ai un batch qui me génère un fichier txt (résultat d'un select dans une table d'une base Oracle). Or le fichier généré est en ANSI et je le voudrais en OEM.
    Je peux le convertir via UltraEdit par exemple mais je voudrais que la convertion soit automatique, n'y a t il pas un moyen de convertir mon fichier depuis le shell????

    Merci

  2. #2
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Salut

    1) Tu peut utiliser l'editeur Metapad, il y a une fonction de le menu Edition pour convertir du texte ANSI ver OEM, tu peut le télécharger ici: http://liquidninja.com/metapad

    2) Il exite un script VBS pour convertir un fichier.txt ANSI ver OEM, tu créer un fichier.vbs que tu appele oem2ansi.vbs et tu y met ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    ' -------------------------------------
    Ensuite tu l'utilise avec cette syntaxe dans un batch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oem2ansi fichierATraiter.txt fichierDeSorti.txt

  3. #3
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Voici deux VBS qui pourrait t'être utile:
    ansi2oem
    oem2ansi

    La syntaxe d'utilisation est très simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ansi2oem <source> <destination>
    oem2ansi <source> <destination>
    Voilà, j'espere que ça pourra t'aider, c'est en effet très facilement intégrable à ton fichier batch pour une utilisation automatique

    Amicallement, sloshy

    EDIT://
    @koKoTis:
    Je crois qu'il voulait automatiser la tache et non chercher un logiciel lui permettant de réaliser la fonction
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  4. #4
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par sloshy
    Voici deux VBS qui pourrait t'être utile:
    Justement je vien d'éditer mon message et j'ai ajouter le vbs.

  5. #5
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Bonjour,
    J'ai edité pendant que tu postais :-)
    Bha du moment qu'il a ce qu'il veut

    Passez une bonne journée
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par sloshy
    Passez une bonne journée
    Merci

  7. #7
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Il semblerait que notre ami ce soit trompé de section :-)
    http://www.developpez.net/forums/sho...53#post2175053

    M'en va lui répondre de l'autre coté avec à la clef une demande de delestage pour ce sujet
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

Discussions similaires

  1. Ansi vers OEM
    Par Okapia dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 26/05/2011, 12h44
  2. [E-03]Conversion ANSI vers OEM
    Par Delivrance dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/12/2008, 20h09
  3. batch unix ANSI to OEM
    Par laury33 dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 13/06/2007, 11h03
  4. Réponses: 4
    Dernier message: 28/12/2005, 13h39
  5. ANSI,OEM et ses fréres;
    Par Frazeks dans le forum C++
    Réponses: 6
    Dernier message: 16/09/2005, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo