hotsauce3 Posté(e) le 15 décembre 2014 Share Posté(e) le 15 décembre 2014 (modifié) 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 Modifié le 16 décembre 2014 par hotsauce3 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
parazitenew Posté(e) le 15 décembre 2014 Share Posté(e) le 15 décembre 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
hotsauce3 Posté(e) le 15 décembre 2014 Auteur Share Posté(e) le 15 décembre 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
hotsauce3 Posté(e) le 15 décembre 2014 Auteur Share Posté(e) le 15 décembre 2014 oui c'est avec cmd.exe et c'est bien les caractères accentuées "é, è, à" Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
parazitenew Posté(e) le 15 décembre 2014 Share Posté(e) le 15 décembre 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
parazitenew Posté(e) le 15 décembre 2014 Share Posté(e) le 15 décembre 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) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
hotsauce3 Posté(e) le 16 décembre 2014 Auteur Share Posté(e) le 16 décembre 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" Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
parazitenew Posté(e) le 16 décembre 2014 Share Posté(e) le 16 décembre 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/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
hotsauce3 Posté(e) le 16 décembre 2014 Auteur Share Posté(e) le 16 décembre 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)"; } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.