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 :

Comment obtenir le nombre de caractères d'un TMemo ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 64
    Points : 69
    Points
    69
    Par défaut Comment obtenir le nombre de caractères d'un TMemo ?
    Bonjour

    Je cherche à saisir un texte dans un tmemo et a chaque saisie d'un caractère je cherche à calculer le nombre de caractère, c'est pour une application d'envoyé de sms

    Si quelqu'un a une idée

    Cordialement
    Sébastien
    --
    Mes freewares : http://www.perrysoft.org

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Length(Memo1.Text);
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut
    Code à mettre dans le OnKeyPress de ton TMemo

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 64
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par Pedro204
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Length(Memo1.Text);
    Merci je cherchais midi a 14h :-(
    --
    Mes freewares : http://www.perrysoft.org

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1
    Points : 0
    Points
    0
    Par défaut
    Problème pas vraiment résolu car la fonction lenght(Memo1.Text) renvoi 2 si un caractère accentué (par exemple é ) a été tapé au lieu de 1 !

    Comment faire pour obtenir vraiment le nombre de caractères saisies dans un Tmemo ?

    Si vous avez la solution, je suis preneur...

    Merci d'avance

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    il n'est jamais très bon de déterrer une discussion, surtout de plus de 10 ans.

    Pour répondre quand même à l'attente ce n'est qu'une question d'encodage (et de la version de Delphi ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Length(AnsiStr(Memo1.Text))
    donnera une bonne réponse pour 'é'

    Cependant le terme "nombre de caractères" ne me plait pas des masses, doit-on considérer les x0A x0D (des sauts de lignes), les espaces comme des caractères ? AMHA il serait plus juste d'utiliser le terme "nombre d'octets"

    ceci étant, je ne connais absolument le monde SMS, il faut nécessairement que cela soit du ANSI , depuis le temps ce n'est toujours pas passé à l'UTF8
    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

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    ceci étant, je ne connais absolument le monde SMS, il faut nécessairement que cela soit du ANSI , depuis le temps ce n'est toujours pas passé à l'UTF8
    Oui l'UTF8 est possible, cela dépend du texte et l'appareil choisit lui-même le codage.

    Un SMS, c'est maximum 1120 bits. En ASCII (7 bits), cela permet 160 caractères. Dès qu'un caractère ANSI étendu est trouvé, la taille est réduite à 140 (1120 /8 bits). L'UTF8 est possible mais puisque la taille du buffer est invariable, ce n'est plus que 70 caractères (1120 /16).

    Bref, un message bien écrit (en bon français) peut coûter plus cher puisqu'un texte avec accents (et éventuellement ligatures) de 160 caractères sera envoyé en deux, voire trois fois (plusieurs SMS facturés).
    Dès lors, écrire "oeil" (ASCII) ou "œil" (UTF8) prend une dimension différente.

    Le SMS est le seul cas où je ne demande pas à mes enfants de faire un effort et mon porte-monnaie leurs dit merci

  8. #8
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Oui l'UTF8 est possible, cela dépend du texte et l'appareil choisit lui-même le codage.


    Le SMS est le seul cas où je ne demande pas à mes enfants de faire un effort et mon porte-monnaie leurs dit merci

    Tu sais que les forfaits mobile ont tous les sms gratuits aujourd'hui ???

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    Citation Envoyé par Papy214 Voir le message
    Tu sais que les forfaits mobile ont tous les sms gratuits aujourd'hui ???
    A un coût abordable en France peut-être mais pas chez moi. On est en prepaid

    Et n'oublie pas le roaming.

  10. #10
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Quelle idée d'habiter aux Bahamas aussi ....
    Le soleil toute l'année, ça se paye

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

Discussions similaires

  1. [Vb.Net] Comment obtenir le nombre de ligne(s) d'un DataGrid ?
    Par dinbougre dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/12/2007, 12h25
  2. Réponses: 22
    Dernier message: 17/08/2006, 19h26
  3. Réponses: 28
    Dernier message: 22/09/2005, 11h57
  4. Comment obtenir le nombre de jours entre deux timedatepicker
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2005, 11h59
  5. Comment obtenir le nombre de documents en attente d'impression ?
    Par Cambon dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 25/03/2005, 09h17

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