Convertir string en Array of Char et point de restauration
Je souhaite créer un point de restauration systeme dans mon programme.
j'ai trouvé le code sur le site de developpez.com à l'adresse :
http://www.developpez.com/delphi/faq...inrestauration
la ligne suivante, affiche le nom du point de restauration :
InfoPointRestauration.szDescription := 'Example de point de restauration';
il s'agit en fait d'un Array et non s'un string
J'ai voulu ajouter un InputBox pour demander le nom du point de restauration mais impossible ! des problèmes de compatibilité de format entre string et Array. J'ai essayer de transformer le string de l'inputbox en Array of Char
comme ceci :
Code:
1 2 3 4 5 6 7 8 9
|
var
a : string;
RestoreName : Array[0..255) of char;
begin
//Copie d'un string vers un array of char
RestoreName := StrCopy(a, PChar(RestoreName));
InfoPointRestauration.szDescription := RestoreName; |
mais impossible (type incompatibles) ! j'avoue que je bloque.
Quelque'un peut-il m'aider ?
Merci.
Daniel
Toujours type incompatible (voivi le code) !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
var
a : string;
RestoreName : Array[0..63] of char;
begin
// Initialise l'enregistrement
InfoPointRestauration.dwEventType := BEGIN_SYSTEM_CHANGE;
InfoPointRestauration.dwRestorePtType := APPLICATION_INSTALL;
InfoPointRestauration.llSequenceNumber := 0;
a := InputBox('Point de restauration', 'Entrez un nom', 'Nouveau point de restauration');
Move(a[1], RestoreName, Length(a));
// a := StrCopy(RestoreName, PChar(a)); //test2
// a := StrPCopy(RestoreName, PChar(a)); //test3 : toujours rien
InfoPointRestauration.szDescription := RestoreName; |
Voici donc le code, pour trouver le truc qui coince !
Daniel
Toujours type incompatible
Merci pour tes tests !
RestoreName prend bien le contenu de toto comme un Array (chaque caractère est séparé dans la chaine) mais il rempli les autres caractères, au dela de la longueur de toto jusqu'au 64e caractère, avec des caractères cabalistiques de toute nature. Le problème surement de là.
Comment faire pour vider la variable RestoreName (Array of Char) avant de l'affecter à toto ?
Merci,
Daniel