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

    • Sa @genio je me suis basé sur la pub qui figure sur le site d’Algérie Telecom, donc pas vu. Mais c'est un peu bébête car avec un script ils peuvent automatiser ça. Bref depuis mon espace je leurs aient écrit, on verra bien s'ils répondent, et c'est clair que je vous tiendrai au courant. 
    • J'y suis arrivé hier tard la nuit. J'en ai bavé, j'y ai passé deux jours. Mon numéro était déjà relié, c'est  celui avec lequel j'ai commandé la carte, mais dans le doute, je me suis rendu à un GAB, et j'ai introduit mon numéro dessus. J'ai passé la journée à me prendre la tête avec leur page d'adhésion, 2h d'affilé à me taper des "Cette page ne fonctionne pas - ERR_EMPTY_RESPONSE". Une fois rentré chez moi, j'ai réessayé encore et encore, j'y suis enfin arrivé à 19h30. Pour l'application mobile  c'était pareil, j'ai due m'y reprendre plusieurs fois, c'est à 1h du matin que j'ai reçu le SMS avec le code de confirmation, et là l'application s'est lancé. Un truc pareil, c'est sensé prendre 2 minutes. Pour n'importe quelle autre application, une inscription prend 2 minutes, t'arrives à Algérie Poste / Télécom, ça te prend la journée. 
    • @intikman...si cest ton metier ok...tu sais utiliser un PC ce que par contre tu aurais du savoir en lisant ce topic qui date de longtemps...c'est que le bonus met plusieurs jours avant de "venir"....surtout en incluant le Weekend... 🙄 priere de nous faire un retour la semaine prochaine.
    • Bonsoir, Il faut commencer par relier un numéro de téléphone a ta carte Edahabia à l'Actel avant de pouvoir utiliser Baridimob. En reliant ton numéro de téléphone tu ouvre également plusieurs possibilités tel que la récéption par SMS de toute nouvelle transaction sur ton compte.
    • Désolé, je sais me servir d'un PC vu que c'est mon métier, j'ai rechargé aujourd'hui et j'ai droit à 34 jours au lieu de 46 jours donc pas de 1000 DA de bonus
×
×
  • Create New...