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

Lazarus Pascal Discussion :

Lire le contenu d'un TMemoryStream [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut Lire le contenu d'un TMemoryStream
    Bonjour,

    J'aimerais télécharger les données d'une requête cgi, jusque là j'y arrive... Ou ça se complique c'est lors de l'écriture de ces données dans un fichier...

    Lorsque j'utilise "showmessage" le contenu de mon TStringStream (voir code) est parfaitement présenté, j'ai les retours à la ligne c'est impeccable, mais quand j’écris ce même TStringStream dans un fichier je n'ai qu'une seule et même ligne...

    Voilà le résultat dans un showmessage :

    Nom : showmessage.png
Affichages : 306
Taille : 85,8 Ko

    et voici le resultat dans un fichier :

    Nom : essai.png
Affichages : 307
Taille : 159,5 Ko

    Voici le petit bout de code que j'utilise :

    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
     
    procedure TForm1.BtnConnectClick(Sender: TObject);
    var fichier : TMemoryStream;
    begin
         http := THttpSend.Create;
         fichier := TMemoryStream.Create;
     
         http.HTTPMethod('GET',edtlien.Text);
         http.Document.SaveToStream(fichier);
     
         showmessage(StreamToString(fichier));
         //http.Document.SaveToFile('f:\essai.txt');
     
     
    end;
     
    function TForm1.StreamToString(aStream: TStream): string;
    var SS: TStringStream;
    begin
      if aStream <> nil then
      begin
        SS := TStringStream.Create('');
        try
          SS.CopyFrom(aStream, 0);
          Result := SS.DataString;
     
        finally
          SS.Free;
        end;
      end else
      begin
        Result := '';
      end;
    end;
    J'avoue que je ne maîtrise pas bien les notions de Stream...

    Merci

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 166
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 166
    Par défaut
    Salut,
    Citation Envoyé par Manusm Voir le message
    mais quand j’écris ce même TStringStream dans un fichier je n'ai qu'une seule et même ligne...
    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         showmessage(StreamToString(fichier));
         //http.Document.SaveToFile('f:\essai.txt');
         fichier.SaveToFile('f:\essai.txt');
    end;

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut
    Non ça me fait exactement la même chose que le fichier précédent je n'ai qu'une seule ligne...

    Merci de ton aide

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut
    Effectivement Yamer, quand j'ouvre ce fichier avec WordPad j'ai bien les retour à la ligne

    Nom : wordpad.png
Affichages : 414
Taille : 37,2 Ko

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut
    Du coup si je veux parcourir ce fichier ligne par ligne, comment dois je procéder ?

  6. #6
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    il faut remplacer les #10 par des #13#10, TStringList doit pouvoir le faire si tu ne veux pas le coder toi même
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre expérimenté

    Homme Profil pro
    Diverses
    Inscrit en
    Février 2014
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Diverses

    Informations forums :
    Inscription : Février 2014
    Messages : 122
    Par défaut
    Est-ce que ce ne serait pas un simple problème de caractère de fin de ligne ? Si le flux reçu a des fin de ligne de style UNIX (#10) il est possible que ShowMessage les interprète bien mais que l'éditeur de Windows n'y comprenne rien. Essaye d'ouvrir ton fichier avec un éditeur plus rusé pour voir.

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

Discussions similaires

  1. Problème en essayant de lire le contenu d'un .lnk
    Par ybruant dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 22/11/2018, 09h16
  2. Lire le contenu d'un fichier PDF
    Par skywaukers dans le forum Delphi
    Réponses: 6
    Dernier message: 18/07/2006, 12h01
  3. [Mail] Lire le contenu d'un mail
    Par hdd dans le forum Langage
    Réponses: 5
    Dernier message: 31/10/2004, 13h30
  4. [Fichier] Lire le contenu d'un fichier
    Par bart64 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/09/2004, 18h18
  5. [VB.NET] Impossible de lire le contenu du datagrid
    Par jagdjg dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/05/2004, 21h51

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