NeoX a écrit 18334 commentaires

  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2.

    c'est deja un bon debut.

    pourquoi tu ne veux pas traiter les données du premier fichier ?

    bon en l'occurrence, il suffit de faire une boucle de 1 à la taille de $ARGV
    plutot qu'un parcours du tableau @files qui contient TOUS les fichiers.

    ou un peu plus sale, dans la boucle for,
    lui dire de sauter le fichier si $file = $ARGV[0]

  • [^] # Re: en changeant la destination des ecritures

    Posté par  . En réponse au message Faire 2 bases de données. Évalué à 2.

    tu as bien retouché les lignes de texte+=... ?

  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2.

    déssolé de t'avoir froissé,
    mais les explications precedentes donnent des schemas, des algorythmes et tu ne semble pas comprendre la "logique" qui se trouve derriere le code Perl que l'on t'a pondu plus haut (ou dans le post precedent).

    alors, oui, je me suis trompé d'un chiffre et j'ai mis ARGV[1] car pour moi (reflexe de bash et d'autres langages) ARGV[0] c'est le programme lui meme.
    bref, cela ne change rien à la logique, qui consiste à :

    • avant la boucle for, faire le meme traitement que celui existant mais uniquement sur le premier fichier (donc ARGV[0]), il suffit de changer value par name
    • garder la boucle actuelle qui fait le boulot que tu souhaites, à savoir sortir les values des fichiers xml pour les mettre dans $FhResult

    et si tu veux traiter 2000 fichiers, mais n'avoir toujours qu'un seul fichier de sortie,
    il faut regarder les $ARG disponibles, y en a surement un pour obtenir le nombre de fichiers.
    et donc faire ta boucle entre 0 et $Nombre-de-fichiers

  • # en changeant la destination des ecritures

    Posté par  . En réponse au message Faire 2 bases de données. Évalué à 2.

    actuellement tu as

    #now let's insert the result into rrdtool database
    
    fileRrdTool = "/home/www/Graph/data_DHT22.rrd"
    
    #let's fill the command line with the
    #Current time (Right now), temperature and humidity
    rdata = "N" + validateRRD(temperature) + validateRRD(humidity)
    subprocess.Popen(["/usr/bin/rrdtool","update",fileRrdTool,rdata])

    qui indique que le fichier sera data_DHT22.rrd
    que les rdata seront "N"TemperatureHumidité
    pour ensuite l'ecrire dans le fichier.

    en reecrivant le code ainsi, ca doit le faire

    #now let's insert the result into rrdtool database
    
    fileRrdTEMP = "/home/www/Graph/data_DHT22.rrd"
    fileRrdHUM = "/home/www/Graph/data_DHT22Y.rrd"
    
    #let's fill the command line with the
    
    #Current time (Right now), temperature and humidity
    rdata-temp = "N" + validateRRD(temperature)
    rdata-hum = "N" + validateRRD(humidity)
    
    
    subprocess.Popen(["/usr/bin/rrdtool","update",fileRrdTEMP,rdata-temp])
    subprocess.Popen(["/usr/bin/rrdtool","update",fileRrdHUM,rdata-hum])

    et probablement, plus bas, adapter, dans la fonction rrdExport pour gerer cela

      texte += "DEF:{}={}:{}:AVERAGE ".format('a',fileRrdTool,'th_dht22')
      texte += "XPORT:{}:""{}"" ".format('a','th_dht22')
      texte += "DEF:{}={}:{}:AVERAGE ".format('b',fileRrdTool,'hm_dht22')
      texte += "XPORT:{}:""{}"" ".format('b','hm_dht22')

    qui devient

      texte += "DEF:{}={}:{}:AVERAGE ".format('a',fileRrdTEMP,'th_dht22')
      texte += "XPORT:{}:""{}"" ".format('a','th_dht22')
      texte += "DEF:{}={}:{}:AVERAGE ".format('b',fileRrdHUM,'hm_dht22')
      texte += "XPORT:{}:""{}"" ".format('b','hm_dht22')
  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2.

    faire du code implique de comprendre ce qu'il fait
    car copier coller sans comprendre, c'est prendre le risque d'installer un virus,
    et puis tu n'apprends rien si tu ne fais que copier/coller betement.

    ici tu as un code qui :
    - ouvre le fichier resultat,
    - fait une boucle pour traiter tous les fichiers passés en arguments
    - va prendre les valeurs (value) et les ecrire dans le fichier de resultat
    - ferme le fichier resultat

    qu'est ce qui t'empeche de faire une paragraphe similaire,
    que tu placerais AVANT de traiter TOUS les fichiers,
    qui va traiter le fichier ARGV[1] pour n'en prendre que les "NAME" ?

  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2.

    il va falloir adapter un peu,

    comme tu le dis toi meme le code renvoie actuellement la value
    et c'est logique avec

    my $attr_value = $_->{'att'}->{'value'} || 'fault';
    print $FhResult $attr_value . ",";

    si tu ne veux pas la value mais le name
    ben il suffit de changer cela

    et si tu veux la value ET le name,
    il faut faire 2 lignes pour creer $attr_value et $attr_name,
    puis les utiliser dans le print $FhResult

  • # pas mieux que feth

    Posté par  . En réponse au message choix logiciel et imprimeur livre photo. Évalué à 3.

    J'ai un imprimeur à coté de chez moi,
    il peut faire tous mes tirages, depuis la carte de visite, jusqu'au poster en A0
    de 1 page à 5000pages et plus.

    Je n'ai donc pas d'imprimante chez moi,
    je prepares mes documents en PDF, que je lui envoie par email ou que je lui amene sur clef USB.

    Generalement sur place, il fait une premiere epreuve (le fameux BAT : Bon A Tirer),
    et si ca me va il lance la serie.

  • [^] # Re: Password grub directe a l'instalation ? Etrange...

    Posté par  . En réponse au message Besoin d'aide sur Oscar démarrage Grub. Évalué à 2.

    ben deplace la demande de mot de passe sur la ligne relative à OSCAR plutot que dans le bloc general

    par exemple ici, on t'explique tout ca :
    https://help.ubuntu.com/community/Grub2/Passwords

    apparemment il suffit de mettre --users sur la ligne que tu souhaites proteger.

  • [^] # Re: revoir l'enoncé et choisir ce qui va bien

    Posté par  . En réponse au message Communication entre deux processus pere-fils bloquante. Évalué à 2.

    tu y es presque,

    mais je penses que tu as l'impression que cela fonctionne car tu vois coucou sur stdout
    mais c'est directement le fils qui ecrit sur stdout, et pas le pere.

    pour etre sur que ce soit le pere, il faudrait ajouter une chaine dans le fputs(buf,stdout)

    pour moi il faudrait maintenant que le fils ecrive dans le "pp" puisque c'est là que le pere va lire avec fgets(buf, sizeof(buf), pp)

  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2.

    peut-etre que c'est simplement parce que tu definis :

    $file=$argv[1],$argv[2]…

    qui ne te sert à rien,
    puis que tu fais ta boucle avec $i avec $i qui va lire les arguments

    mais que tu executes $twig2->parsefile($file)

    dans la realité l'algo de ton code devrait ressembler à ca :

    Pour Indice entre 1 et 3 {
    lefichier = argument[$Indice]

    traitement_du_fichier
    }

  • [^] # Re: La parole de Saint-Ignatius a été enfin écoutée

    Posté par  . En réponse à la dépêche Communauté Odoo : L'abbaye du Barroux développe les modules de gestion des dons. Évalué à 4.

    J'ai modifié le titre comme suit :
    Communauté Odoo : L'abbaye du Barroux développe les modules de gestion des dons

  • [^] # Re: revoir l'enoncé et choisir ce qui va bien

    Posté par  . En réponse au message Communication entre deux processus pere-fils bloquante. Évalué à 2.

    1-fichiers textes -> ne fonctionne pas car le fichier texte n'est pas créé par le fils

    ben faur le creer avec le pere, le remplir avec le fils
    puisqu'il faut le remplir avec les parametres que le fils va lire.
    le fils lit ces parametres, fait l'acquisition, ecrit le resultat dans un 2e fichier.
    et le pere viendra lire le fichier quand le fils aura terminé donc apres le execl()

  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2.

    donc si on reprend,

    tu veux pouvoir taper :
    perl parser.xml fichierA.xml fichierB.xml fichierC.xml
    et que ca te sorte un seul fichier
    resultat.txt

    alors il faut faire la boucle dans le perl
    pour lire chacun des argv

    actuellement tu remplis $file1 avec le premier argument argv[0] avec le code my $file1 = $ARGV[0] || die 'No file1';

    ben il te faut faire un boucle pour lire chacun des argv[1], argv[2], argv[3]… tant qu'il y en a en fait

    d'ailleurs d'apres ton code, ton resultat se trouve en 4e position de la ligne de commande argv[3]
    my $FileResult = $ARGV[3] || 'result.txt';

  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2. Dernière modification le 13 avril 2015 à 21:57.

    j'aimerai que le fichier de sortie contient le resulat de plusieur XML-fichier
    […]
    je tape

    perl parser.pl 1.xml. 2.xml, 3.xml, 4.xml,…, n.xml

    et le resultat sur un fichier result.txt

    donc ca marche ?

  • [^] # Re: revoir l'enoncé et choisir ce qui va bien

    Posté par  . En réponse au message Communication entre deux processus pere-fils bloquante. Évalué à 2.

    Interface.cpp doit envoyer des paramètres d'acquisition à acq.c

    et acq.c tout seul depuis la ligne de commande prend des parametres ?

    parce qu'à ce compte là, faut juste lancer acq.c avec les parametres dans interface.c et recuperer ce qui en sort,
    sans avoir besoin de creer des pipes, des sockets ou des fichiers;

    dans ton cas, si en ligne de commande tu peux faire :
    acq parametre1 parametre2
    ou
    acq --option1 parametre1 --option2 parametre2

    alors dans interface.c il doit suffire de faire un
    retour = execl("/chemin/vers/acq", "parametre1", "parametre2");

  • [^] # Re: loop

    Posté par  . En réponse au message Parsage sur plusieur fichier. Évalué à 2.

    2 possibilités, qui vont dependre de la sortie attendue.

    1°) tu veux un fichier de sortie par fichier d'entrée => boucle du shell
    qui avec des fichiers A.xml, B.xml, C.xml
    va lancer 3 fois la commande perl parser.pl nom-du-fichier

    ta commande deviens alors :
    for file in *.xml;do perl parser.xml $file;done

    2°) avoir un seul fichier de sortie contenant le resultat de plusieurs fichiers XML => boucle dans ton perl, sur les arguments que tu lui donnes.
    tu vas alors lancé le programme comme suit :
    perl parser.pl A.xml B.xml C.xml

    et c'est dans le perl que tu fais une boucle pour lire chacun des arguments.

  • # revoir l'enoncé et choisir ce qui va bien

    Posté par  . En réponse au message Communication entre deux processus pere-fils bloquante. Évalué à 2.

    mais je n'ai aucun moyen de synchroniser le processus fils & père pour la lecture par le fils et lecture par le père.

    alors pourquoi ne pas faire qu'un process ecrive dans un fichier
    et que l'autre process lise dans ce fichier

    tu as alors 2 process independants, qui peuvent attendre silencieusement,
    et quand acq.c remplit le fichier, ca declenche une action du lecteur

  • [^] # Re: Avoir un bon expert comptable

    Posté par  . En réponse au journal Moi aussi j'ai créé une entreprise !. Évalué à 2.

    Et la condition n'est pas d'avoir un expert comptable mais adhérer à une association de gestion…

    association de gestion qui te fournit … un expert comptable ;)

  • # par exemple

    Posté par  . En réponse au message Comment retrouver ses propres messages ?. Évalué à 4.

    -> mon tableau de bord (à gauche, sous le logo du site)
    ou bien
    -> en cliquant sur ton pseudo en haut de ton post

  • [^] # Re: Avoir un bon expert comptable

    Posté par  . En réponse au journal Moi aussi j'ai créé une entreprise !. Évalué à 2.

    ne pas oublier qu'avoir un expert comptable, meme si ca coute ~800/1000€ par an (pour un expert comptable "externe" qui passe de temps en temps dans ta boite(, permet d'eviter la majoration automatique de tes revenus par les services fiscaux qui, l'absence d'expert comptable, considere que tu fraudes sur environ 25% de tes revenu.

  • [^] # Re: Systemd ?

    Posté par  . En réponse au message Remplacer Network Manager par Wicd. Évalué à 2.

    et sans systemd un simple
    update-rc.d -f network-manager remove

    devrait supprimer les liens de demarrage automatique du service "network-manager"

    il faut juste verifier son nom exact dans
    /etc/init.d/

  • # lire le cours sur execl et sur les tubes nommés

    Posté par  . En réponse au message Communication entre deux fichiers sous linux. Évalué à 3.

    ca me parait etre l'idée de base.

    tel que decrit :
    - ca ressemble à un devoir à rendre dans la semaine
    - sans voir le code c'est difficile de dire ou ca se bloque.

    alors comme point de depart je te propose la page de man de execl

    en francais : http://www.linuxfr-france.org.invalid/article/man-fr/man3/execv-3.html
    en anglais : http://linux.die.net/man/3/execl

  • [^] # Re: Ubuntu 14.04 SP1

    Posté par  . En réponse au journal Le Dell xps 13 édition développeur est enfin là. Évalué à 1.

    et il veut dire quoi le .1 apres l'année et le mois de sortie ?
    il veut dire "ensemble de correctifs n°1 apres la release officielle"
    ce qui est aussi la definition de SP1.

    alors quand il faut remplir la fiche du produit qui demande la version de l'OS, et son eventuel service pack,
    ben la personne qui a remplit à preferer mettre :
    OS : 14.04
    Service Pack : SP1

  • [^] # Re: Ubuntu 14.04 SP1

    Posté par  . En réponse au journal Le Dell xps 13 édition développeur est enfin là. Évalué à -10.

    Et alors ?

    la 14.04 c'est version LTS
    ce que ne sont pas 14.10 et 15.04,
    donc moi ca me semble logique.

  • # Samba4

    Posté par  . En réponse au message Migrer un AD Windows 2003/2008 vers linux Redhat. Évalué à 5.

    Samba4 est TA solution

    ca fait controleur de domaine, gestion des utilisateurs, des GPO, etc

    en plus ca s'installe assez facilement,
    meme si en 2012, j'avais du installé une version en provenance de la suite zentyal car plus recente que la version de mon Ubuntu 12.04 de l'epoque