hotsauce3 Posted December 15, 2014 Share Posted December 15, 2014 (edited) Bonjours, bon voila j'ai un script qui consiste a récupérer des mot depuis un fichier texte et les affiche dans la console, mais j'ai un problème avec les caractères accentuer qui ne s'affiche pas correctement . j'ai fais une recherche sur google mais j'ai rien trouver qui marche alors si vous avez une idée merci de la partager ps: je suis sous Windows Edited December 16, 2014 by hotsauce3 Quote Link to comment Share on other sites More sharing options...
parazitenew Posted December 15, 2014 Share Posted December 15, 2014 La console windows? cmd.exe? Et les caractères c'est du genre "é, è, à" ou les caractères spécieux? Car chez moi y a pas de problèmes d'accents. Si tu veux je peux te faire un script, il me faut la structure de ton fichier texte, ce que tu veux copier exactement, bref, les détails. Quote Link to comment Share on other sites More sharing options...
hotsauce3 Posted December 15, 2014 Author Share Posted December 15, 2014 #!/usr/bin/perl -w use strict; use warnings; use utf8; use experimental 'smartmatch'; my @words; open (my $inFile, ' while () { chomp; @words = split /[:,\s\/\'\;]+/; #regex foreach my $w (@words) {lemm($w);} } close ($inFile); sub lemm { my $cons = 3 ; my $succ =0 ; my $i = 0; my ($word) = @_; # recuperer le mot chomp $word; #traitement print $word ." -> ". substr $word ,0,$i.""; print "\n" } voila le script le fichier texte c'est juste des mots aléatoire Quote Link to comment Share on other sites More sharing options...
hotsauce3 Posted December 15, 2014 Author Share Posted December 15, 2014 oui c'est avec cmd.exe et c'est bien les caractères accentuées "é, è, à" Quote Link to comment Share on other sites More sharing options...
parazitenew Posted December 15, 2014 Share Posted December 15, 2014 J'ai pas trop compris le script, je ne fais pas du perl. Pour le fichier texte, faudrait voir la structure, est-ce un mot par ligne? Des mots qui se suivent? séparés par une virgule ou autre etc. Aussi lorsque tu les envoies sur la console, voudrais tu les envoyer à la suite ou suivis d'un espace etc. J'aimerai plus de détails. En attendant je t'ai fait un petit script (vu que je vais dormir maintenant), je vais supposer que ton fichier texte contient plusieurs lignes, le script va compter le nombre de ligne, et les enverra sur la console suivie d'un espace. Version ".exe" https://www.dropbox.com/s/xf4g58obxgzqpxo/Draft.rar?dl=0 Version ".au3" (que tu peux ouvrir avec le notepad) https://www.dropbox.com/s/fw5khxu77iasxpr/Draft.au3?dl=0 Attention: Le fichier texte doit être dans le même dossier que l'exe. Pour ce brouillon le fichier texte doit être nommé (test.txt) que tu pourras changer selon ton fichier. Pour effectuer les changement je te mets le code: #include $nb_line = _FileCountLines(@ScriptDir&"\test.txt") Run("cmd.exe") For $i = 1 to $nb_line $string = FileReadLine(@ScriptDir&"\test.txt", $i) WinWaitActive("Administrateur : C:\Windows\system32\cmd.exe") Send($string&" ") Next Tu peux modifier le nom su fichier texte et le plus important, "Le titre de la fenêtre cmd, chez moi c'est Administrateur : C:\Windows\system32\cmd.exe Et pour compiler le script en .exe https://www.dropbox.com/s/y47oaijm1pwu1ix/Aut2Exe.rar?dl=0 Tu lances le programme, tu pointe vers le code .au3 et tu compile en .exe Si c'est autre chose, on verra demain Quote Link to comment Share on other sites More sharing options...
parazitenew Posted December 15, 2014 Share Posted December 15, 2014 J'ai oublié la bibliothèque: https://www.dropbox.com/s/yrhvz7v4ogeqwul/File.au3?dl=0 Par contre je ne sais pas où tu dois la mettre :s (je pense qu'il vaut mieux attendre que tu me donnes tout les détails) Quote Link to comment Share on other sites More sharing options...
hotsauce3 Posted December 16, 2014 Author Share Posted December 16, 2014 pour le fichier il n'y a pas de problème j'arrive a récupérer tous les mot mais mon problème c'est plus l'affichage d'un mot qui contient des lettres accentuées, donc par exemple si je j'affiche le mot "réduction" j’obtiens "rÚduction" Quote Link to comment Share on other sites More sharing options...
parazitenew Posted December 16, 2014 Share Posted December 16, 2014 Donc ça ne vient pas du script , puisque chez moi ça fonctionne avec les accents, ça peut venir de l'encodage du DOS. C'est un problème récurent surtout sous XP, j'ai fait une recherche sur le net, il parait que l'encodage que tu dois mettre sur le script que t'a mis en haut (use utf-8;) doit correspondre à l'encodage su script. Voici un topic qui traite de ce sujet: http://www.developpez.net/forums/d777858/autres-langages/perl/langage/console-dos-accents/ Quote Link to comment Share on other sites More sharing options...
hotsauce3 Posted December 16, 2014 Author Share Posted December 16, 2014 merci pour ton aide j'ai pu resoudre le probleme en ajoutant ca : my ($codepage) = (`chcp` =~ m/:\s+(\d+)/); foreach my $h ( \*STDOUT, \*STDERR, \*STDIN ) { binmode $h, ":encoding(cp$codepage)"; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.