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 :

Des strings de plus de 256 caractères


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Des strings de plus de 256 caractères
    Bonjour !

    Je suis débutant dans le domaine de la programmation ... et je suis en train de réaliser un petit programme et le problème que je rencontre c'est :

    Comment faire en sorte qu'une variable de type string contienne plus de 256 caractères ?
    Puis-je utiliser les pointeurs ici ? Ou comment ?

    Merci pour chacun qui passe.

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    les string Delphi sont déjà des pointeurs (générés dynamiquement par le langage), la limite de 255 caractères ne s'applique qu'aux ShortString (équivalent des string du Turbo Pascal).
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Je préciserais que le compilateur n'accepte pas les chaînes de plus de 255 caractères mais il accepte de concaténer plusieurs chaînes même si la somme des caractères fait plus de 255.

    Je ne sais pas si je suis bien clair là alors voici un exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure Quelconque;
    var maChaine : String;
    begin
        { Ceci ne passe, le compilateur dit que la chaine ne peut dépasser 255 caractères }
        maChaine := 'Ai na vedui Dunandan. Mae govannen, mellon. Annon edhellen lasto beth lammen. Fannas golothrim idro hi commen. Il était une fois un bonhomme de foi qui mangeai du foie dans la ville de Foix. Il se dit ma foi, c''est la première fois que je mange du foie dans la ville de Foix.'; 
     
        { Ceci fonctionne la somme des caractères fait 276 caractères mais ça passe car la valeur est divisée en plusieurs chaîne de moins de 255 caractères }
        maChaine := 'Ai na vedui Dunandan. Mae govannen, mellon.'
            + ' Annon edhellen lasto beth lammen. Fannas golothrim idro hi commen.'
            + ' Il était une fois un bonhomme de foi qui mangeai du foie dans la ville de Foix.'
            + ' Il se dit ma foi, c''est la première fois que je mange du foie dans la ville de Foix.';
    end;

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    en effet, pour les chaînes littérales, je n'avais jamais rencontré le problème, mais c'est bien indiqué dans l'aide:
    Ce message d'erreur survient lorsque vous déclarez un type chaîne courte de plus de 255 éléments, si vous affectez un littéral chaîne de plus de 255 caractères à une variable de type ShortString, ou lorsque vous avez plus de 255 caractères dans une chaîne de caractères simple.

    Notez que vous pouvez construire des littéraux chaîne longue sur plus d'une ligne en utilisant l'opérateur '+' pour concaténer plusieurs littéraux chaîne.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Comment?
    Alors . . . comment déclarer une longue chaîne de caractères? est -t-il possible d'utiliser PChar?

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    La première réponse de Paul Toth le laissait entendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var
      ChaineAussiLongueQueJeVeux: String;
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Dr.Mimo Voir le message
    Alors . . . comment déclarer une longue chaîne de caractères? est -t-il possible d'utiliser PChar?
    en littéral tu dois utiliser le + sur des chaînes de moins de 255
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. String avec plus de 255 caractères
    Par draco951 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/02/2016, 08h30
  2. Réponses: 4
    Dernier message: 05/10/2012, 16h39
  3. Robocopy avec chemin de plus de 256 caractères
    Par js8bleu dans le forum Windows 7
    Réponses: 0
    Dernier message: 16/07/2012, 22h06
  4. Problème adresse plus grande que 256 caractères
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/06/2008, 16h32
  5. Chaine de plus de 256 caractères
    Par mistertom dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/02/2008, 17h23

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