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

Delphi Discussion :

Dépasser les 1024 caractères par ligne dans un TMemo


Sujet :

Delphi

  1. #1
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut Dépasser les 1024 caractères par ligne dans un TMemo
    Bonjour,

    Je développe une application sous Win Vista avec Delphi 2006.

    J'introduis de façon automatique des chaines de caractères continues dans un memo. Parfois ces chaines peuvent dépasser la taille de 1024 caractères. De ce fait, les caractères au de là du 1024ième caractère sont mis à la ligne.

    Lorsque je fais cette requête, je n'obtiens dés lors que les 1024 premiers caractères :

    Alors que lorsque j'enregistre le même memo dans un fichier .txt, j'obtiens les lignes avec le nombre de caractères exact ! Cela pouvant dés lors dépasser les 1024 caractères !

    Comment puis je dés lors dans le logiciel récupérer la première ligne entièrement ?

    D'avance merci pour vos réponses.



    xenos

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    En passant par une TStringList (ou Tstrings) intermédiaire, cela devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var tsl : tstringlist ;
    ...
    tsl:=tstringlist.create ;
    ...
    tsl.Text=memo.Lines.text ;
    MemoLine0=tsl[0] ;
    ...
    tsl.free ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Le Mémo est un composant Windows non ? Vérifie sur NotePad si tu as le même comportement ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Citation Envoyé par ShaiLeTroll
    Le Mémo est un composant Windows non ? Vérifie sur NotePad si tu as le même comportement ...
    Il a le même comportement avec NotePad ...

    Mais en utilisant NotePad++, il affiche la ligne sur UNE ligne !

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    C'est effectivement un comportement assez bizarre.
    J'ai essayé avec un SendMessage avec EM_GETLINE et même symptôme.

    Cependant la méthode de Grafitto fonctionne.

    +1

    @+ Claudius

  6. #6
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Citation Envoyé par Graffito
    En passant par une TStringList (ou Tstrings) intermédiaire, cela devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var tsl : tstringlist ;
    ...
    tsl:=tstringlist.create ;
    ...
    tsl.Text=memo.Lines.text ;
    MemoLine0=tsl[0] ;
    ...
    tsl.free ;
    Un grand merci Graffito! Ton code fonctionne à merveille !

    Juste pour information ... le composant TStringList, tu le trouve dans quelle partie des composants ? Standard, Additional, Win32, ...

    Bon développement à tous.



    xenos

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    TStringlist ce n'est pas dans la palette, c'est un objet non visuel, disponibles dans Classes.pas ... surement un des objets les plus utilisés en Delphi
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Citation Envoyé par ShaiLeTroll
    TStringlist ce n'est pas dans la palette, c'est un objet non visuel, disponibles dans Classes.pas ... surement un des objets les plus utilisés en Delphi
    D'accord, merci pour l'info.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/10/2011, 10h28
  2. Limiter le Nbr de caractères par ligne dans un textaera.
    Par anca2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/06/2009, 08h31
  3. Limite de 1024 caractères par ligne de code !
    Par Mousmai dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/07/2006, 19h00
  4. Limiter le nombre de caractère par ligne d'un textarea
    Par rantanplan08 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 04/01/2006, 19h31
  5. nombre de caractères par ligne à l'affichage
    Par trotters213 dans le forum Oracle
    Réponses: 3
    Dernier message: 03/11/2005, 09h51

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