Jump to content
hotsauce3

[Perl] Afficher les Accents

Recommended Posts

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 by hotsauce3

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

#!/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

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

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"

Share this post


Link to post
Share on other sites

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/

Share this post


Link to post
Share on other sites

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)";
}

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • Je demande le certificat de chez la deuxième entreprise ?  La ou je n'ai pas travaillé ?  Ou une attestation de là ou je travaille ?  Merci beaucoup pour ta réponse pcq pour l'instant ça ne s'annonce pas très facile au dire de l'avocat si je pars en justice ça sera très long.
    • @parazitenew j'avais omis cela, je voulais aussi ajouter...que suite a el hanaa elle aura une piste FIABLE sur sa situation. el hanaa est fiable, donc il ne s'agit pas d'une erreur mais bel et bien d'un fait: la CNAS a bien reçu la demande de la sociéte en question, c'est incroyable car le formulaire secu est dépose le lendemain d'un recrutement... mais en algerie on aura tout vu !  quoi qu'il en soit...le correspondant social de mon entreprise...m'a confirmé que cette pratique se fait parfois quand une entreprise pense que le recrutement est confirmée de vive voix...histoire de gagner du temps suffit donc d'aller demander un certificat de travail et de le montrer a la cnas...et de refaire un secu. avec ta premiere entreprise...   
    • wallah c'est une folie pure...une devaluation chaque 24h...
    • @RosaBM deja commence par utiliser le portail el hanaa...tout le monde est au courant de son existence.... ca te donnera peut etre une piste...
×
×
  • Create New...