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

Ruby Discussion :

accents répertoire,fichier + FXfileDialog de FXRuby


Sujet :

Ruby

  1. #1
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut accents répertoire,fichier + FXfileDialog de FXRuby
    bonjour à toutes et à tous,

    ch'tiot exemple

    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
     
    require 'fox16'
    include Fox
    app = FXApp.new
    ecr = FXMainWindow.new( app, "fileDialog" )
    FXButton.new(ecr,"choix")    do |btn|
            btn.connect(SEL_COMMAND) do
                    openDialog = FXFileDialog.new( app, "choix Fichier")
                    if openDialog.execute != 0
                        begin
                            txt=File.open( openDialog.filename, "r" ).read
                            rescue
                                txt=$!.to_s()
                        end
                    end
                    print txt
                end
        end
    app.create()
    ecr.show(PLACEMENT_SCREEN)
    app.run()
    si le nom des répertoires /fichiers contiennent un accent ==>
    ça déclenche l'erreur

    on peut faire quelque chose ?

    merci d'avanace.
    @+

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    eviter les accents et les espaces dans le filesystem^^

  3. #3
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut certes; on peut ne pas répondre comme ça ;o))
    Quand on demande, sur un forum, comment changer un
    pneu de voiture, les réponses, en général, vous
    expliquent comment apprendre à rouler sur 3 roues.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Le probleme c'est que les gars qui ont construit les voitures n'ont prévu que 3 roues !
    En d'autres termes, ceux qui ont codé FXRuby et Cie n'ont pas d'accents sur leur clavier...
    J'espere que quelqu'un pourra te répondre un peu mieux...

  5. #5
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut gtk vs fxruby
    après une petite absence,
    j'ai tenté d'installer et d'utiliser GTK
    là, ça semble baigner les accents
    je testerais plus à fond dès que possible
    le temps de lire les docs, de faire des essais...
    @+

  6. #6
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    bon... ben j'ai dis des [¤µµ€§|€$ ;o(
    ça ne fonctionne pas non plus avec GTK,
    je vais devoir faire mon développement
    avec un autre langage à priori,
    dommage, j'aime bien ruby moi.
    @+

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 1 058
    Points
    1 058
    Par défaut
    Bonjour.

    J'arrive à lire le contenu d'un fichier dont le nom est récupéré grâce à un objet Gtk::FileChooserDialog.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    require 'gtk2'
     
    dialog=Gtk::FileChooserDialog.new('Test accent', nil, Gtk::FileChooser::ACTION_OPEN, nil,
    	[Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL], [Gtk::Stock::OPEN, Gtk::Dialog::RESPONSE_ACCEPT])
    if dialog.run==Gtk::Dialog::RESPONSE_ACCEPT
    	p dialog.filename
    	f=File.open(dialog.filename)
    	p f.readlines
    	f.close
    end
    dialog.destroy
     
    Gtk.main
    ZiK un lecteur audio et son blog.

  8. #8
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    merci de l'intervention vinc-mai, c'est ce que j'ai essayé,
    mais j'ai la même erreur ( en sucrant dialog.destroy )

    par exemple :
    D:\Mes documents\ Travail>ruby fich.rb

    "D:\\Mes documents\\\302\240Travail\\fich.rb"
    fich.rb:12:in `initialize': No such file or directory - D:\Mes documents\ Travail\fich.rb (Errno::ENOENT)
    from fich.rb:12:in `open'
    from fich.rb:12

    le répertoire s'appelle D:\Mes documents\¤Travail
    avec ¤ = ALT+0160

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 1 058
    Points
    1 058
    Par défaut
    L'erreur semble être renvoyée par la File.open, çà concerne donc ruby et pas Gtk ou FX.
    Je viens de tester avec un fichier nommé ¤toto/test.
    Chez moi dialog.filename=/.../\302\244toto/test. Ruby ouvre ensuite le fichier sans problème.
    Je suis sous linux Ubuntu. Peut-être est-un bug lié à windows ? (Mauvaise transmission des caractères spéciaux en ruby et windows ?)
    ZiK un lecteur audio et son blog.

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Sous Linux, pour connaitre le type de fichier :
    Interessant de constater que ça ne répond pas pareil suivant si le fichier a été créé sous Windows, Mac ou Linux...

  11. #11
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    >>L'erreur semble être renvoyée par File.open,
    >>çà concerne donc ruby et pas Gtk ou FX.
    parfaitement exact.

    >>Peut-être est-un bug lié à windows ?
    peut-être ? j'ai toujours des doutes quand
    je pense à ce genre de possibilités.
    c'est quand même "gros", et si c'est le cas, ça
    devrait être corrigé, "rapidement", normalement (?).
    l'erreur ( si erreur il y a ! ) a du être remontée.

    @+

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 1 058
    Points
    1 058
    Par défaut
    Quand je parlé de bug lié à windows, je mettais pas forcément en cause windows. Peut-etre est-ce ruby qui bug sous windows. As-tu fait un recherche sur le net. Il faudrait peut-etre contacter l'équipe ruby.

    Grr, j'arrive pas utiliser les accents circonflexes.
    ZiK un lecteur audio et son blog.

  13. #13
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    >>je mettais pas forcément en cause windows
    et moi ni windows, ni ruby !
    perso, pour simplifier, jamais vu de bugs
    autres que mes propres bêtises ;o)
    >>As-tu fait un recherche sur le net.
    >>Il faudrait peut-etre contacter l'équipe ruby.
    hélas : I speak english like a spanish cow
    incapable de faire ça dans la langue du "chat qui expire",
    déjà que dans celle de "mord le lierre" j'ai du mal....
    @+
    navré du temps de réponse :
    la tempête a pas mal perturbé.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut FxRuby - utiliser des accents
    Tout d'abord, mille excuses pour réveiller ainsi ce topic, mais étant donné qu'aujourd'hui je recherchais une réponse (que j'ai fini par trouvé) je me dis que ca peut peut être aider d'autres rubystes.

    Donc voici une solution très simple pour pouvoir utiliser librement les accents et autres caractères spéciaux avec Ruby 1.9 et FxRuby. Il suffit de mettre en début de chacun des fichiers devant rencontrer des accents (ca peut être mis dans tous même) :
    Pour avoir testé le FXFileDialog (mon environnement : Win7 64bits ; Ruby 1.9.3 ; FxRuby 1.6.28) avec des fichiers ayant des accents, ca marche même sans cette ligne ci-dessus. Mais par contre, l'accent est remplacé par un magnifique caractère japonais dans le fileDialog, et son code hexadécimal (dans mon cas \xE8 pour le è). Cependant, sans cette ligne, les labels et titres des éléments Fox font planter le programme (l'erreur décrite dans le premier message : invalid multibyte char (US-ASCII)).

    Voici l'exemple de code qui m'a servi à tester les accents dans les labels (ici label d'un bouton) et les noms de fichiers :
    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
    # encoding: utf-8
    # Bloc begin / end (en cas d'erreur, affichage de l'erreur dans la console MS-Dos qui lance le script)
    begin
    	# Inclusion de la bibliothèque Fox
    	require 'fox16'
    	include Fox
     
    	# Si on est dans le fichier principal (le premier script ruby appelé)
    	if __FILE__ == $0
    		# Démarrage de l'application
    		FXApp.new("FileDialog", "Iaret") do |app|
    			# Création de la fenêtre principale
    			ecr = FXMainWindow.new(app, "fileDialog")
     
    			# Création d'un bouton dans la fenêtre principale
    			FXButton.new(ecr,"choix") do |btn|
    				# Action au clic : ouvrir l'explorateur de fichier made in Ruby (FXFileDialog)
    				btn.connect(SEL_COMMAND) do
    					openDialog = FXFileDialog.new(app, "Sélectionner un fichier")
    					# Si un fichier est sélectionné, j'affiche son nom dans la console MS-Dos
    					if openDialog.execute != 0
    						p openDialog.filename
    					end
    				end
    			end
     
    			# Assemblage et placement de l'interface de l'application
    			app.create()
    			ecr.show(PLACEMENT_SCREEN)
     
    			# Lancement de l'application
    			app.run()
    		end
    	end
     
    # En cas d'erreur, affiche l'erreur et les traces dans la console MS-Dos
    rescue => error
    	print error.message + "\n"
    	print error.backtrace.join("\n")
    end
    Pour le tester, j'ai créé un dossier appelé Dossier qui contenait 4 fichiers :
    1 - Premier fichier.txt, 2 - Deuxième fichier.txt, 3 - Troisième fichier.txt et 4 - Quatrième fichier.txt. Lorsque je sélectionne dans la FXFileDialog le fichier n°2, son nom s'affiche (presque) correctement dans la console (c'est la console MS-Dos, c'est pour ca) et, le plus important, aucune erreur ^^ Les accents s'affichent correctement dans la boite de dialogue grâce à la première ligne.

    Et pour ceux (il y en a peut être qui liront ces quelques lignes) qui auraient un nombre de fichiers trop important pour rajouter manuellement la définition de l'encodage au début de chaque, il existe apparemment une gem qui peut vous aider en ajoutant cette ligne à tous les fichiers .rb (j'ai pas testé je ne sais pas si ca marche aussi pour les .rbw) contenus dans un répertoire donné (y compris dans ses sous répertoires) : magic_encoding

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/05/2007, 23h20
  2. accents et fichier sql
    Par millefeintes dans le forum Oracle
    Réponses: 9
    Dernier message: 19/02/2007, 17h58
  3. Réponses: 2
    Dernier message: 05/01/2007, 11h38
  4. Problème pour liste répertoires/fichiers
    Par pymouse dans le forum C
    Réponses: 1
    Dernier message: 15/12/2006, 11h45
  5. Problème avec accent dans fichier
    Par shaun_the_sheep dans le forum Administration système
    Réponses: 3
    Dernier message: 19/11/2006, 20h46

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