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

C++Builder Discussion :

Ouvrir un fichier depuis le réseau local


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut Ouvrir un fichier depuis le réseau local
    Bonjour à tous,

    Je vous explique mon soucis. Je possède un DataLogger (équipement qui réalisent des mesures quelconques) connecté en réseau local avec mon ordinateur. Par le biais d'un explorateur web je peux accéder à un des fichiers de mesure stockés sur le DataLogger.

    Par exemple si je tape dans l'explorateur web l'adresse http://192.168.120.88/fichier1.csv (192.168.120.88 étant l'adresse du DataLogger sur le réseau local) mon explorateur web ouvre ce fichier et l'affiche.

    Je voudrais en fait savoir comment dans un programme simple en C++ je peux faire pour ouvrir ce fichier et le mettre dans un TStringList par exemple.

    J'ai essayé un peu bêtement d'ouvrir ce fichier comme un fichier en local grâce à la méthode LoadFromFile mais cela ne fonctionne pas avec les fichiers réseau sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TStringList* Fichier = new TStringList();
    Fichier->LoadFromFile("192.168.120.88//fichier1.csv);
    La syntaxe est elle fausse ? Est-ce possible de cette façon ?
    Pourrais-je le faire avec LoadFromStream ?

    Merci d'avance pour vos réponses.

    Cordialement

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Attention, si la ressource est accessible via l'URL http://192.168.120.88/fichier1.csv, cela signifie qu'il y a un serveur HTTP sur le PC 192.168.120.88. Dans ce cas, on ne peut pas ouvrir le fichier à l'aide des fonctions de manipulation de fichiers usuelles mais à l'aide du protocole HTTP. Cela nécessite donc évidemment de la programmation réseau.

    Si fichier1.csv se trouve dans un dossier partagé du PC 192.168.120.88 et que ton PC est autorisé à s'y connecter, alors il peut être accédé à l'aide du chemin absolu \\192.168.120.88\DossierDePartage\fichier1.csv.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier->LoadFromFile("\\\\192.168.120.88\\DossierDePartage\\fichier1.csv");

  3. #3
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    Avec ce code cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fichier->LoadFromFile("\\\\192.168.120.88\\fichier1.csv");
    En fait l'equipement d'adresse IP 192.168.120.88 n'est pas un PC mais un Datalogger. Il possède un serveur web embarqué. Le fichier que je désire ouvrir se trouve sur ce datalogger et est accessible en lecture depuis un explorateur web par l'adresse : http://192.168.120.120/fichier1.csv
    Le datalogger recupère des mesures toutes les 5 min et les ajoute à ce fichier csv donc le fichier est modifié toutes les 5 min sur une période de 24h (ensuite il est transféré,effacé,peu importe...)

    J'ai donc ensuite décider d'utiliser le composant TNMHTTP. J'ai mis dans Host la valeur 192.168.120.88, dans Port la valeur 80 et appelé la méthode Get avec en paramètre ou
    ////192.168.120.88//fichier1.csv
    , cela me renvoit dans la propriété Body de mon TNMHTTP :
    HTTP/1.1 400 Bad Request
    <HTML>
    <HEAD><TITLE>Error 400 - Bad Request</TITLE></HEAD>
    <BODY>
    <H1>Error 400 - Bad Request</H1>
    Your browser sent a request that this server could not understand.
    </BODY>
    </HTML>
    Mon but est d'afficher tout ca dans un TStrings* ou dans TMemo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    this->Memo1->Clear();
     
    this->NMHTTP->Host = "192.168.120.88";
    this->NMHTTP->Port = 80;
    this->NMHTTP->Get("http:////192.168.120.88//emn0001.csv");
     
    this->Memo1->Lines->Add(this->NMHTTP->Body);
    Quelqu'un aurait il une idée ou une suggestion ?

    Merci d'avance

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    une précision, seulement le caractère \ doit être doublé car c'est le caractère d'échappement pour les chaine de caractère, le caractère / ne doit pas l'être, essaye donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    this->Memo1->Clear();
     
    this->NMHTTP->Host = "192.168.120.88";
    this->NMHTTP->Port = 80;
    this->NMHTTP->Get("http://192.168.120.88/emn0001.csv");
     
    this->Memo1->Lines->Add(this->NMHTTP->Body);

  5. #5
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    Merci Melem et pottiez pour vos réponses.

    J'arrive désormais à récupérer le contenu de mon fichier csv dans un TMemo et dans un TStringList.

    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
     
     
        this->Memo1->Clear();
     
        this->NMHTTP->Host = "192.168.120.88";
        this->NMHTTP->Port = 80;
        this->NMHTTP->Get("http://192.168.120.88/fichier1.csv");
     
        this->Memo1->Lines->Add(this->NMHTTP->Body);
     
        TStringList* Fichier = new TStringList();
        Fichier->Add(this->NMHTTP->Body);
     
        Fichier->SaveToFile("C:\\fichier1.csv");

    Cependant il me reste encore un problème, que je n'arrive pas à expliquer.

    Dans le TMemo ainsi que dans mon fichier sauvegardé en local je retrouve ces lignes de texte avant le texte contenu dans le fichier csv du datalogger:


    HTTP/1.1 400 Bad Request
    <HTML>
    <HEAD><TITLE>Error 400 - Bad Request</TITLE></HEAD>
    <BODY>
    <H1>Error 400 - Bad Request</H1>
    Your browser sent a request that this server could not understand.
    </BODY>
    </HTML>
    Quelqu'un saurait l'expliquer ?

    Merci.

    A bientot

  6. #6
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    un peu d'aide ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ouvrir un fichier sur le réseau local
    Par balha24 dans le forum C
    Réponses: 4
    Dernier message: 14/12/2012, 14h17
  2. Réponses: 3
    Dernier message: 10/03/2009, 10h07
  3. Ouvrir un fichier sur un réseau avec fopen
    Par dadou38 dans le forum Langage
    Réponses: 4
    Dernier message: 28/10/2006, 12h19
  4. Ouvrir un fichier depuis un JButton
    Par Marty McFly dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 23/05/2006, 19h26
  5. Réponses: 6
    Dernier message: 18/05/2006, 09h29

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