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

Interfaces Graphiques Perl Discussion :

[Perl/Tk] [Arabe] Afficher le contenu d'un fichier dans un widget Text


Sujet :

Interfaces Graphiques Perl

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut [Perl/Tk] [Arabe] Afficher le contenu d'un fichier dans un widget Text
    bonjour,
    je veux afficher le continu d'un fichier dans un Scrolled
    voici le code :
    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
     
     
     
    my $text = $fenetre->Scrolled(
      "Text",
      -height     => 10,
      -wrap       => "none",
      -relief     => "solid",
      -background => "white",
      -scrollbars => "oe",
    )->pack( -fill => "both", -expand => 1 );
     
    $menu_ouvrir->command( -label   => 'Ouvrir', -command => \&open_file  ) ;
     
        sub open_file {
     
        my $filetypes =     [
                ['Drawing Files',    '.drg'],
                ['All files',    '*']
                ];
     
        my $select_file_full = $fenetre->getOpenFile(
                        -filetypes  => $filetypes,
     
      -initialdir => "/home/hp/Bureau/Master",
      -multiple   => 1,);
     tie *STDOUT, ref $text, $text;
    print "$select_file_full";
     
     
     
     
        }
    cependant aucun affichage !!!!


    help plz !!

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bonsoir,

    À aucun moment tu n'ouvres et ne lit le fichier. De plus, ton code n'est pas complet et pas bien indenté.
    Merci de faire un effort à ce niveau.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut GetOpernfile + perl tk
    je débute encore avec perl surtt avec l'utilisation du module tk , en fait depuis longtemp je cherche à afficher le continu d'un fichier à l'aide d'un menu ouvrir , mais j'arrive pas à le faire , j'ai aussi cherché sur le faq encore j'ai pas mme trouver des exemples , voici mon code :
    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
     
    $menu_ouvrir->command( -label   => 'Ouvrir', -command => \&open_file  ) ;
    my $txt = $fenetre -> Text(
     -height=>10,
    -wrap       => "none",
    -relief     => "solid",
    -background => "white",
     
    ) -> pack(-fill => "both", -expand => 1 );
        sub open_file {
     
        my $filetypes =     [
                ['Drawing Files',    '.drg'],
                ['All files',    '*']
                ];
     
        my $select_file_full = $fenetre->getOpenFile(
                        -filetypes  => $filetypes,
     
      -initialdir => "/home/hp/Bureau/Master",
      -multiple   => 1,);
     
    my $fic = $select_file_full;
     #tie *STDOUT, ref $text, $text;
    $txt -> insert(" $select_file_full");
    #print "$select_file_full";
     
        }

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Voici un exemple de code sur lequel tu peux te baser pour continuer ton programme :
    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
    #!/usr/bin/perl
    use warnings;
    use strict;
    use Tk;
    use Encode;
     
    # Programme principal
    # Création de la fenêtre
    my $fenetre = new MainWindow(
    	-title      => 'Première fenêtre Tk',
    	-background => 'brown',
    );
     
    # Affichage d'un texte
    my $label_accueil = $fenetre->Label(
    	-text       => 'Bonjour tout le monde',
    	-background => 'white',
    )->pack(qw/ -pady 5 /);
     
    my $widget_texte = $fenetre->Scrolled(
    	'Text',
    	-scrollbars => 'osoe',
    	-background => '#F3EFFF',
    )->pack(qw/ -fill both -expand 1 -padx 5 -pady 10 /);
     
    my $bouton = $fenetre->Button(
    	-text    => 'Ouvrir un fichier',
    	-command => [ \&ouvrir_fichier, $fenetre, $widget_texte ],
    )->pack(qw/ -pady 2 /);
     
    MainLoop;
     
    sub ouvrir_fichier {
    	my ( $fenetre, $widget_text ) = @_;
     
    	my $filetypes = [ [ 'Drawing Files', '.drg' ], [ 'All files', '*' ] ];
    	my $fichier = $fenetre->getOpenFile(
    		-filetypes  => $filetypes,
    		-initialdir => "/home/hp/Bureau/Master",
    	);
     
    	# Gestion des nom de fichiers encodés (avec accents)
    	my $OS = lc($^O);
    	if ( $OS eq 'mswin32' and defined $fichier ) {
    		$fichier = encode( 'iso-8859-1', $fichier );
    	}
     
    	# Lecture du fichier et affichage dans le widget Texte
    	open my $fh, '<', $fichier or die "Impossible de lire le chier $fichier\n";
    	while ( my $ligne = <$fh> ) {
    		$widget_texte->insert( 'end', $ligne );
     
    		# Rafraichir le widget
    		$widget_texte->update();
     
    		# Voir la dernière ligne
    		$widget_text->see('end');
    	}
    	close $fh;
    }
    Pour le détail des explications tu peu lire les tutoriels et cours de formation pour apprendre la programmation de Perl : http://perl.developpez.com/cours/

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut
    bonjour,
    merci pour votre réponse , il suffit de changer ds mon code :
    -multiple => 1, par -multiple => 0,
    cependat mon problème est avec l'affichage de l'arabe , y'a t 'il une solution pour resoudre le problème , en fait l'affichage est comme ds cette image :

    http://www.developpez.net/forums/att...normal_tk.png/

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bonjour,

    Je ne connais rien en arabe et votre premier post ne stipulait pas un souci de langage arabe.
    Merci d'apprendre à être clair. Si vous n'êtes pas clair, ne mettez pas de titre clair, il vous sera difficile d'obtenir des réponses.

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Points : 406
    Points
    406
    Par défaut
    Bonjour,

    d'après le poste: http://www.developpez.net/forums/d13...a/#post7136319
    apparemment d'autre ont eu un problème avec l'affichage d'un texte "arabe" dans un "Scrolled"

    je pense donc que les personnes concernés pourront vous fournir une solution

  8. #8
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bonjour rimenis,
    Dans le programme de djibril, pour l'arabe, tu ajoutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use utf8;
    use encoding 'utf8';
    Mais il me semble qu'on avait déjà vu çà...

    Concernant le scrolled text il y a un pb pour afficher de l'arabe qui contient des diacritiques.
    En fait l'anomalie se produit dans toutes les langues qui comportent des caractères à échappement nul (c'est le cas des diacritiques en arabe).
    Un caractère diacritique est un caractère qui modifie le son de la lettre associée.
    En français les voyelles sont des diacritiques, mais ces diacritiques sont des caractères qui suivent la lettre. Toujours en français, les lettres accentuées sont des caractères qui ont leurs propres code utf8, comme pour éèà... un seul code utf8 pour coder la lettre et son diacritique associé !
    En arabe les diacritiques s'écrivent au-dessous ou au-dessus la lettre... il faut donc simuler un décalage... ce qu'on appelle échappement nul... les diacritiques en arabe ont leurs propres codes utf8, autrement-dit, il faut 2 codes utf8 (chacun sur 2 caractères) pour coder une lettre arabe avec un diacritique, le tout ne devant prendre la place que d'un seul caractère !

    Tu pourras gérer de l'arabe dans un scrolled text sans problème s'il ne comporte pas de diacritiques, ce qui est le cas le plus fréquent, sauf pour les textes religieux essentiellement.
    NB : L'anomalie ne se produit pas seulement en Perl/Tk mais dans la plupart des éditeurs et traitements de texte...
    Bon courage !

Discussions similaires

  1. [AC-2007] Afficher le contenu d'un recordset dans un champ text
    Par Peper89 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 08/06/2010, 18h00
  2. afficher le contenu d'un fichier dans une interface
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 16/11/2008, 12h08
  3. Réponses: 8
    Dernier message: 03/09/2007, 21h11
  4. [DLL] Afficher le contenu d'une dll dans un Tpanel
    Par Fabs dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/08/2007, 14h30
  5. Réponses: 1
    Dernier message: 12/02/2003, 09h36

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