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

Langage Delphi Discussion :

fin de string = #0 ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut fin de string = #0 ?
    Bonjour a tous !

    j'aimerais avoir une certitude sur ce point :
    Une chaine de caractère (string) sous Delphi se termine t elle
    toujours par un #0 ?
    Je pense que oui,
    mais tout seul dans son coin, pas facile d'avoir une certitude.
    Merci pour vos réponses .

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    normalement oui me semble-t'il mais j'aimerai bien avoir confirmation aussi

  3. #3
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    résultats de mes petites recherches:

    Delphi utilise 3 types de chaines a "zéro terminal".
    PChar, PAnsiChar et PWideChar.
    Ces types dechaines sont donc compatibles ApiWin32, qui demandent toujours des chaines a zéro terminal.
    Par contre, le type ShortString, ne serait pas une chaine a zéro terminal et incompatible ApiWin32.
    Je me demande meme si:
    toto: array [1..20] of char ... n'est pas a zéro terminal ?
    Mais bon ... qui pourrait confirmer ou non tout ca ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Sauf erreur de ma part :

    - ShortString : non. Utilisé pour compatibilité ascendante avec les chaines de 255 caractères du pascal.

    - AnsiString et autres (<= 2 Go) : oui.

    - PChar : oui, pointeur sur chaîne à zéro terminal.

    L'aide de Delphi est bien faite à ce sujet. Il est préférable d'utiliser des PChar.

  5. #5
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Oui ... mais quand on déclare simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Var toto : string ;
    en réalité, "string" c'est quoi ... une chaine AnsiString ?

  6. #6
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    dans d7 l'aide est claire :

    Le mot réservé string fonctionne comme un identificateur de type générique. Par exemple*:

    var S: string;

    crée une variable S contenant une chaîne. Dans l'état par défaut {$H+}, le compilateur interprète string (quand il apparaît sans être suivi d'un crochet ouvrant) comme désignant AnsiString. Utilisez la directive {$H–} pour que string soit interprété comme désignant ShortString.
    ça marche aussi avec toto

  7. #7
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Oui, effectivement.
    Je ne pense jamais a l'aide en ligne ! aie !
    et ma doc bouquin etait floue a ce sujet.
    L'aide en li-gne ... ok, ...
    sur ce coup la, c'est un délestage assuré
    Y'a des jours sans comme ca ...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 69
    Points : 77
    Points
    77
    Par défaut
    http://www.codexterity.com/delphistrings.htm
    Mes programmes : www.antp.be/software/fr/

  9. #9
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Superbe doc ! ... ca, c'est archivé directe !
    Merci antp !

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

Discussions similaires

  1. substring en fin de string
    Par c+cool dans le forum Langage
    Réponses: 8
    Dernier message: 31/10/2007, 22h31
  2. Eliminer des caracteres aleatoires en fin de string
    Par Prismical dans le forum Modélisation
    Réponses: 2
    Dernier message: 30/05/2007, 01h26
  3. iterator.end() ne detecte pas fin de la string
    Par cyclone3 dans le forum C++
    Réponses: 27
    Dernier message: 12/06/2006, 10h13
  4. problème fin de string sous windows 98
    Par LAPLACE dans le forum Windows
    Réponses: 1
    Dernier message: 07/03/2006, 11h09
  5. Réponses: 3
    Dernier message: 28/10/2005, 14h38

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