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 :

Char et AnsiChar


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut Char et AnsiChar
    Bonjour,

    Je m'arrache les cheveux en essayant de reprendre des bouts de code que j'ai écrit il y a quelques années.
    J'ai, par exemple, ce truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Truc : String
    var
      L: LongInt;
      MyStr:ShortString;
     
    begin
    [...]
            L := 65;
            MyStr[0] := Chr(L);
    [...]
    end;
    Le compilateur bloque sur la ligne 9 en m'indiquant :
    Types incompatibles : 'AnsiChar' et 'Char'

    Ces 'AnsiChar' me procurent bien des soucis

    Comment lever l'erreur ?

    Merci (et pardon pour cette question triviale ...)

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Tu es sous Delphi 2009+.
    Remplace simplement Chr par AnsiChar.

  3. #3
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Remplace simplement Chr par AnsiChar.
    Je développe avec Delphi 2010.
    Merci pour ta réponse mais le transtypage AnsiChar(L) - même s'il ne provoque plus d'erreur - n'a rien à voir avec la fonction Chr(L). Par exemple, chr(9) est le caractère tabulation. Que donne MyStr[0] := AnsiChar(9) ??

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Le but est justement de leurrer le compilateur
    MyStr[0] n'est de toute façon pas un caractère, mais la longueur de la chaîne courte...

    Dans ton exemple, ce n'est pas "A" que tu veux écrire non plus... ou alors tu fais faux !

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Pas plus simple d'écrire

    x <> 0 bien sur
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  6. #6
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut
    Ok. Les choses sont plus claires pour moi (MyStr[0] = longueur de la chaine)
    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/09/2014, 17h57
  2. Réponses: 3
    Dernier message: 02/07/2003, 16h24
  3. [PostgreSql] Problème de cadreage de char !!!
    Par moipastoi dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/05/2003, 18h01
  4. Réponses: 6
    Dernier message: 24/03/2003, 17h11
  5. Traitement d'un char* renvoyé par une DLL en C++
    Par LuluTchab dans le forum Langage
    Réponses: 4
    Dernier message: 22/03/2003, 21h48

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