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

OpenOffice & LibreOffice Discussion :

Redondance dans l'écriture d'un fichier par un appel url


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Redondance dans l'écriture d'un fichier par un appel url
    Bonjour,

    J'ai écris une macro AppelURLTest() qui ouvre le fichier bonjour.php en utilisant open et l'url suivante :
    "http://localhost/tests/formulaire/salut_3/bonjour.php?nom=" & lePrenom"
    Le fichier bonjour.php écrit dans un fichier bonjour.txt le prenom "jojo" et le temps en seconde.
    Lorsque que je lance la macro, tout semble se passer correctement :
    - j'ai en retour dans le fichier tableur le message "Enregistrement OK !",
    - le fichier bonjour.txt est crée et contient du texte.

    Le problème est le suivant, lors d'un seul appel à la macro, 5 lignes sont écrites dans bonjour.txt.
    Je ne comprends pas et je ne parviens pas à résoudre ce problème de redondance, pouvez-vous m'aidez ?

    Merci pour l'attention que vous porterez à ma requête.


    Macro AppelURLTest()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    sub AppelURLTest()
    	Dim lePrenom As String, laReponse As String, monURL aS String 
    	Dim f1 As Integer
     
    	lePrenom = "jojo"
    	monURL=ConvertToURL("http://localhost/tests/formulaire/salut_3/bonjour.php?nom=" & lePrenom)
    	f1 = FreeFile
    	Open monURL For Input As #f1
    		Line Input #f1, laReponse
    	Close #f1
    	MsgBox laReponse,0,"Réponse du serveur"
     
    end sub
    fichier bonjour.php

    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
     
    <?php
     
    if (isset($_GET['nom'])) {
     
    	$monfichier = fopen('./bonjour.txt','a+');
    	fputs($monfichier, 'Nom : '.$_GET['nom'].' Time : '.microtime(true).PHP_EOL);
    	fclose($monfichier);
    	echo 'Enregistrement OK !';
     
    } else {
     
    	echo 'Rien reçu !';
     
    }
     
    ?>
    fichier bonjour.txt après seulement un appel à la macro AppelURLTest()

    Nom : jojo Time : 1404023986.933
    Nom : jojo Time : 1404023986.9343
    Nom : jojo Time : 1404023986.9354
    Nom : jojo Time : 1404023986.9365
    Nom : jojo Time : 1404023986.9376

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Salut,

    La fonction que tu utilises lit les lignes donc ton fichier en contient plusieurs, c'est pour cela que tu as plusieurs lignes, tu peux essayer cela :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        oShell = createUnoService("com.sun.star.system.SystemShellExecute")  
        oShell.execute(ConvertToUrl("http://localhost/tests/bonjour.php?nom=" & lePrenom), "", 0)

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Test de SystemShellExecute
    Test de SystemShellExecute (proposé par zoom61)

    En mettant le code ci-dessous comme nouvelle méthode AppelURLTest(), il y a bien une seule ligne qui s'affiche dans bonjour.txt, cependant je ne sais pas comment accéder à la réponse du serveur qui renvoie le texte "Enregistrement OK !".
    J'ai besoin d'obtenir la réponse du serveur, comment faire avec SystemShellExecute ?

    Lorsque tu dis : "la fonction que tu utilises lit les lignes donc ton fichier en contient plusieurs, c'est pour cela que tu as plusieurs lignes" ,
    Dans la macro AppelURLTest(), la fonction open lit le fichier obtenu à l'url "http://localhost/tests/formulaire/sa...r.php?nom=jojo" et le serveur renvoie comme fichier, une seule ligne de texte "Enregistrement OK !".
    Donc, une seule ligne est lue dans la macro, je ne comprends donc pas ta remarque. Pourrais-tu insister s'il te plait ? ;-)

    Merci d'avoir pris le temps de répondre à ma requête.

    Bonne après-midi

    PS :

    Pour me documenter, j'ai chez moi le livre Programmation OpenOffice.org et LibreOffice, Macros OOoBASIC et API, Marcelly, Godard, 2011.
    Dans cet ouvrage je ne trouve pas d'explications détaillées de l'utilisation de com.sun.star.system.SystemShellExecute, sur internet j'ai trouvé seulement ceci :
    http://www.openoffice.org/api/docs/c...llExecute.html.
    Ce qui ne permet pas d'en savoir plus, pouvez-vous m'indiquer une référence pour connaître plus en détail ce genre de fonctionnalité ?

    Macro AppelURLTEst()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    sub AppelURLTest()
    	Dim lePrenom As String, 
    	Dim oShell As Object
     
    	lePrenom = "jojo"
     
    	oShell = createUnoService("com.sun.star.system.SystemShellExecute")  
            oShell.execute(ConvertToUrl("http://localhost/tests/formulaire/salut_3/bonjour.php?nom=" & lePrenom), "", 0)
     
     
    end sub

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/01/2013, 19h17
  2. Synchro de l'écriture sur un fichier par plusieurs processus
    Par tnarol dans le forum Threads & Processus
    Réponses: 1
    Dernier message: 08/04/2008, 17h38
  3. Problème de caractère dans l'écriture d'un fichier
    Par Oberown dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/07/2007, 10h55
  4. Réponses: 3
    Dernier message: 18/08/2005, 11h57
  5. Réponses: 1
    Dernier message: 19/08/2003, 16h11

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