Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1243 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [ Delphi ] un transtypage marrant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Delphi ] un transtypage marrant

n°411100
Ciler
Posté le 29-05-2003 à 18:08:03  profilanswer
 

Je viens de m'apercevoir d'un truc, on peut pas directement transtyper un string[x] en PChar.
 
si on a  
 
truc: string[12];
machin: PChar;
 
vous voyez plus propre que  
machin := PChar(string(truc));  :??:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
mood
Publicité
Posté le 29-05-2003 à 18:08:03  profilanswer
 

n°411121
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-05-2003 à 18:34:24  profilanswer
 

Y a une explication logique :
les chaînes de longueur variable (AnsiString, WideString) sont en fait des PChar encapsulés (gestion automatique de la mémoire, compteur de références, etc.)
Donc quand tu fais PChar(chaine) c'est vraiment un transtypage.
Tandis qu'une chaîne de longueur fixe ne se finit pas par un #0 (la longueur utilisée est stockée dans le premier octet), et donc il faut vraiment une conversion et pas un simple cast.


Message édité par antp le 29-05-2003 à 18:34:40

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°411127
Ciler
Posté le 29-05-2003 à 18:44:34  profilanswer
 

antp a écrit :

Y a une explication logique :
les chaînes de longueur variable (AnsiString, WideString) sont en fait des PChar encapsulés (gestion automatique de la mémoire, compteur de références, etc.)
Donc quand tu fais PChar(chaine) c'est vraiment un transtypage.
Tandis qu'une chaîne de longueur fixe ne se finit pas par un #0 (la longueur utilisée est stockée dans le premier octet), et donc il faut vraiment une conversion et pas un simple cast.


 
 
Par conversion, tu entends une procedure qui va copier dans le PChar caractere par caractere ou bien PChar(string()) va suffire ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°411148
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-05-2003 à 20:06:32  profilanswer
 

Dans le pire des cas va falloir copier.
Mais le truc que tu proposes passant par une string ça peut aller (enfin, je mettrais AnsiString pour être sûr, vu que string est juste un mot clé désignant le type de chaînes par défaut)


Message édité par antp le 29-05-2003 à 20:06:44

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°411192
Ciler
Posté le 29-05-2003 à 22:14:45  profilanswer
 

antp a écrit :

Dans le pire des cas va falloir copier.
Mais le truc que tu proposes passant par une string ça peut aller (enfin, je mettrais AnsiString pour être sûr, vu que string est juste un mot clé désignant le type de chaînes par défaut)


 
UTF8String ... Je bosse pas en ANSI moi mossieur  :o


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°411207
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-05-2003 à 22:53:16  profilanswer
 

C'est exactement la même chose au niveau du stockage :D
Puisque l'UTF8 est stocké dans des AnsiString :whistle:  
D'ailleurs UTF8String est défini comme "string"


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [ Delphi ] un transtypage marrant

 

Sujets relatifs
[Delphi] plugin et utilisation dynamique de dll[VB - C++ - Delphi] Status Upload / Download network...
[Delphi 7] livre à acheter pour apprendre Delphi?Les .dll en delphi .. ?
[DELPHI] recuperer les arguments de la ligne de commande[Delphi] Recherche désespéremment procédure ALPHA-BETA.....
Delphi et WebCam...Comment gerer une BD sous Delphi avec Oracle
Comment recreer un projet Borland/Delphi a partir de .pas et .dfmversion gratuite de delphi 6 BORLAND
Plus de sujets relatifs à : [ Delphi ] un transtypage marrant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR