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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Conversion String en Pchar

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conversion String en Pchar

n°886321
Sidius
Cheat Is Shit
Posté le 30-10-2004 à 11:02:02  profilanswer
 

Salut tout le monde  :hello:
 
Dans le cadre de mon lycée, moi et 2 amis on a décidé de programmer un anti spam. (pas très performant, le but de la manoeuvre étant juste de comprendre la stratégie pour en créé un performant). Seulement voila, tous le programme marche avec des strings et je me rend compte maintenant que toutes les fonctions dont j'ai besoin recquiert des PChars. J'ai bien cherché dans l'aide, mais j'arrive pas a me servir de ce qu'il y écrit. Et j'ai cherché dans ce forum, j'ai bien trouvé une reponse, mais pas assez détaillé pour qu'elle me serve a quelque chose.
 
Donc si vous pouviez me dire comment convertir une string en Pchar, et aussi qu'elle est la différence entre une string et un Pchar.
 
Merci d'avance   :jap:

mood
Publicité
Posté le 30-10-2004 à 11:02:02  profilanswer
 

n°886768
antp
Super Administrateur
Champion des excuses bidons
Posté le 31-10-2004 à 09:17:53  profilanswer
 

PChar(s)
 
où "s" est la variable string
 
par exemple pour une fonction qui veut un PChar :
 
MaFonction(PChar(chaine 1 + 'blabla' + chaine2));
 
string = mot clé qui utilise le type de chaîne défini dans les options de compilation (AnsiString par défaut, mais ça pourrait être ShortString).  
Les AnsiString sont des chaînes gérées "automatiquement" par le compilateur : il les rallonge quand il faut, désalloue la mémoire automatiquement, etc.
Une variable AnsiString pointe vers le premier caractère, il y a un zéro en fin de chaîne (géré automatiquement, on ne doit pas s'en soucier), et la taille est stockée sur 4 octets avant le premier caractère.
 
PChar = ^Char, un pointeur vers un caractère, comme le char* en C donc. Chaîne finie par un zéro, dont la mémoire n'est pas gérée automatiquement. On les emploie très peu en Delphi vu que c'est pas pratique. Mais on doit bien y passer pour les échanges avec des fonctions externes (DLL, API Win32, etc.)
PChar(s) = fait un cast de s en PChar (force le compilateur a le prendre comme un PChar alors que c'est une string). Ça marche vu que les string sont aussi finies par un 0. Mais évidemment on ne peut pas aller écrire n'importe comment dessus après :D
Si on veut forcer la longueur d'une chaîne (par exemple pour pouvoir ensuite écrire dedans comme si c'était un PChar) on peut utiliser SetLength.


Message édité par antp le 31-10-2004 à 09:22:13

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°887661
Sidius
Cheat Is Shit
Posté le 01-11-2004 à 11:38:11  profilanswer
 

Merci, merci et encore merci :wahoo:  
 
Sa fait plusieur jour que je cherche et ma reponse se resumais a 4 lettres :lol:

n°887668
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-11-2004 à 11:42:13  profilanswer
 

5 + deux parenthèses [:aloy]


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

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

  Conversion String en Pchar

 

Sujets relatifs
[C++] Conversion char * vers wchar_t *[C] Conversion nombre hexa en decimal
[C++][Drivers] Conversion d'un driver pinnacle Xp vers W2k3[C] Probleme de conversion char -> int
[c++] Conversion vector<T> en T*Comment convertir Widestring en string
[VBA] String trop longconversion str en date ou datetime
Alimentation Variable() as string[DELPHI] string et syntaxe : comment "dire" ceci ?
Plus de sujets relatifs à : Conversion String en Pchar


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)