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 :

Convertir string en Array of Char et point de restauration


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Pourquoi ne pas effectuer uen boucle de 1 a Length(<chaine saisie>) et copiler les caracteres un par un dans le tableau de char

    A verifier ... mais je pense que le tableau doit contenir le caracter nul #0 pour terminer la chaine

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Pour transférer un String dans un Array of Char :

    Essayes donc avec Move(StrSource, BufDestination, Length(StrSource));
    et si Length(StrSource) est trop court (0 terminal AZT de l'Array) remplaces par Length(StrSource)+1) ;

    Pour plus de détails sur Move faire F1.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Par défaut Marche pas !
    marche pas (avec ou sans +1) !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var
      RestoreName  : string;
      RestoreName2 : Array[0..255] of Char;
    begin
     
    repeat
      RestoreName := InputBox('Point de restauration', 'Entrez un nom', 'Nouveau point de restauration');
      until RestoreName <> '';
     
      Move(RestoreName, RestoreName2, Length(RestoreName));
      InfoPointRestauration.szDescription := RestoreName2;  //Array of
    Types incompatibles !
    Quelqu'un peut-il me dire s'il s'agit bien d'un Array of Char pour InfoPointRestauration.szDescription" ?

    Quelqu'un peut il tester le code (voir lien dans la question) ?


    Daniel

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Y'a pas beaucoup de monde sur le forum aujourd'hui.

    Mais si tu tapes 'Copy String to array of char' dans l'Edit qui s'ouvre avec la fonction Chercher dans le Forum (en haut à droite de la page 1 du Forum) on trouve une discussion sur ce sujet qui te donnera peut-êtres des idées.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Par défaut
    Mr secretman.

    peut-etre que c'est StrPCopy que tu dois utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function StrPCopy(Dest:PChar;const Source:string):PChar;
    StrPCopy copie Source dans une chaîne à zéro terminal Dest.Elle renvoie un pointeur vers Dest.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
    a : string;
    RestoreName : Array[0..255) of char;
    begin
    StrPCopy(RestoreName,a);
    InfoPointRestauration.szDescription := RestoreName;

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Par défaut Types incompatibles !
    StrPCopy(RestoreName,a);

    [Erreur] Unit1.pas(467): Types incompatibles

    Je me demande si "InfoPointRestauration.szDescription"
    est bien d'un Array of Char ??? car j'ai tout essayer en vain.

    Qu'y a t-il comme autres Array ? Byte ? ...

    Si quelque'un à le temps de regarger le source, 2 secondes, pour me dire ce qu'il en pense :

    http://www.developpez.com/delphi/faq...inrestauration

    Merci d'avance,

    Daniel

Discussions similaires

  1. convertir string en char array
    Par cecile38 dans le forum C++
    Réponses: 2
    Dernier message: 22/05/2012, 13h51
  2. Spliter un string en array of char ?
    Par MaTHieU_ dans le forum Delphi
    Réponses: 5
    Dernier message: 18/03/2007, 22h11
  3. Copy String to array of char
    Par Ardely dans le forum Delphi
    Réponses: 11
    Dernier message: 11/02/2007, 00h24
  4. Champ String et Constante Array of Char ?
    Par BXDSPORT dans le forum Delphi
    Réponses: 4
    Dernier message: 24/08/2006, 12h35
  5. Convertir String en Char: comment?
    Par nmathon dans le forum Langage
    Réponses: 2
    Dernier message: 22/08/2005, 20h58

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