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 :

Comment récupérer une chaine de caractères à partir de TMemoryStream [Langage/Algorithme]


Sujet :

C++Builder

  1. #1
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut Comment récupérer une chaine de caractères à partir de TMemoryStream
    Bonjour à tous,
    je voudrais récupérer un fichier de mon site internet, puis pour analyser le contenu de ce fichier ASCII "1.text".
    Deux méthodes ont été utilisées pour récupérer le fichier sur RichEdit1, mais

    // Méthode 1: Marche, mais il faut passer par fichier sur disque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      IdAntiFreeze1->OnlyWhenIdle = false;
      TMemoryStream *mem = new TMemoryStream();
      AnsiString URLFile = ComboBox1->Text;
      IdHTTP1->Get(URLFile, mem);
      mem->SaveToFile("1.txt");
      RichEdit1->Lines->LoadFromFile("1.txt");
    // Méthode 2: Ne march pas, je ne sais pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      IdAntiFreeze1->OnlyWhenIdle = false;
      TMemoryStream *mem = new TMemoryStream();
      AnsiString URLFile = ComboBox1->Text;
      IdHTTP1->Get(URLFile, mem);
      RichEdit1->Lines->LoadFromStream(mem);

    Le problème clés est que je ne sais pas comment récupérer le contenu d'un TMemoryStream.
    Je suis preneur s'il y a d'autre méthode simple.
    Merci d'avance.
    Xavier

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut
    C'est un petit bug jamais corrigé dans La VCL
    en effet lorsque tu lit un fichier dans un Stream la position du ptr du Stream est repositionnée à 0 ce qui n'est manifestement pas le cas avec le chargement de données en provenance d'autre sources
    la correction est des plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    IdAntiFreeze1->OnlyWhenIdle = false;
    TMemoryStream *mem = new TMemoryStream();
    AnsiString URLFile = ComboBox1->Text;
    IdHTTP1->Get(URLFile, mem);
    mem->Seek(0,soFromBeginning); // on repositionne la position du pointeur de Stream au début
    RichEdit1->Lines->LoadFromStream(mem);
    et voila
    cdlt

  3. #3
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut
    Merci DjmSoftware,
    c'est parfait!
    J'ai vraiement raison de poser la question le dimance apres des heure d'essais.
    Vivre entreaide,
    Bon dimance
    Xavier

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

Discussions similaires

  1. Comment récupérer une chaine de caractère selon son début et sa fin?
    Par neo62matrix dans le forum Général Python
    Réponses: 3
    Dernier message: 21/03/2012, 10h08
  2. Récupérer une chaine de caractère à partir d'une autre
    Par Invité dans le forum Conception
    Réponses: 9
    Dernier message: 23/01/2012, 14h17
  3. Réponses: 5
    Dernier message: 16/03/2011, 09h46
  4. Réponses: 2
    Dernier message: 14/01/2005, 15h40
  5. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 11h30

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