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

Composants VCL Delphi Discussion :

Charger un TMemo depuis un tableau de caractères


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Charger un TMemo depuis un tableau de caractères
    Bonjour,

    je suis novice en Delphi (quelques semaines de développement) et je bloque sur ce petit problème.

    J'ai écris le code qui me permet de lire la sortie d'un programme console à travers un pipe. Dans ma première expérience pour apprendre à manipuler tout ça, je stocke ce que je lis dans un szBuffer: array[0..256] of AnsiChar que je recopie au fur et à mesure dans un TMemoryStream. Puis, à la fin, je sauvegarde tout le TMemoryStream dans un fichier texte. Et là, pas de problème, je récupère bien toutes les infos de ma console dans mon fichier texte. Parfait !

    Dans ma deuxième expérience, je veux ajouter dans un TMemo ce que me fournit le szBuffer associé à mon pipe au fur et à mesure. D'abord, j'ai naïvement utilisé la méthode Memo.Lines.Add() où j'envoie mon szBuffer en AnsiString.

    Et là, ça ne fonctionne pas. Je suppose que cela provient du fait que j'envoie dans Lines des "morceaux" de ligne. En effet, mon szBuffer peut très bien contenir des fins de ligne, puis le début d'une autre ligne non terminée...

    Bref, je suppose qu'il faudrait que j'arrive à cumuler dans mon TMemo mes sorties successives pour mon szBuffer comme je le faisais avec TMemorySTream.

    Ma question est donc, comment faire pour puncher mon szBuffer au fur et à mesure dans TMemo ?

    Le code ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try
        while true do
        begin
          bTest := ReadFile(hPipeOutputRead, szBuffer, 256, dwNumberOfBytesRead, nil);
          if not bTest then
          begin
            break;
          end;
     
          Memo1.Lines.Append(szBuffer);
        end;
      finally
        /.../
      end;
    Mon problème est vraiment de charger au fur et à mesure le TMemo, si c'est possible.

    PS : J'espère que mes explications sont à peu près claires !

    Merci par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    j'ai lu en diagonale mais j'aurais essayé memo.lines.text:=memo.lines.text+szBuffer; ou du moins quelque chose de ce genre
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    j'ai lu en diagonale mais j'aurais essayé memo.lines.text:=memo.lines.text+szBuffer; ou du moins quelque chose de ce genre
    Merci beaucoup ! C'est exactement ce que je cherchais. Désolé de ne pas avoir trouvé ça tout seul Merci et bonne journée !

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

Discussions similaires

  1. Charger une image depuis un textfield [noob]
    Par yodark dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/04/2006, 08h36
  2. Charger une page depuis la mémoire dans un TWebBrowser
    Par dableuf dans le forum Composants VCL
    Réponses: 1
    Dernier message: 16/01/2006, 15h46
  3. Charger une page depuis un menu déroulant ?
    Par tomguiss dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/10/2005, 08h32
  4. Comment charger un TFrame depuis une dll ?
    Par Millenod dans le forum Langage
    Réponses: 29
    Dernier message: 22/12/2004, 14h48
  5. [Applet][JAR]Charger une applet depuis un fichier jar
    Par CappCorp dans le forum Applets
    Réponses: 8
    Dernier message: 23/11/2004, 13h08

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