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 :

String to Array of byte - Ajout sans raison de valeur


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut String to Array of byte - Ajout sans raison de valeur
    JourBon les gens,

    Toute petite petite question lorsque je fais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    i_BinarySize: integer;
    s_value: string;
    aby_array: array of byte;
     
    s_value := 'Manager 1';
     
     
    i_BinarySize := (Length(s_value) + 1) * SizeOf(Char);
    SetLength(aby_array, i_BinarySize);
    Move(s_value[1], aby_array[0], i_BinarySize);
    mon aby_array contient : [77,0,97,0,110,0,97,etc...], c'est bien mais j'ai des 0 qui viennent se rajouter entre mes valeurs. Bon je suppose que ça vient du fait que ce soit des Char et qu'il doit y avoir à la fin du caractère un #0 ou quelque chose comme ça mais je ne vois pas comment procéder :s

    Merci pour vos réponses toujours très utiles !

    Bonne journée

  2. #2
    Membre Expert Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Par défaut
    C'est que tu dois etre en unicode => 2 octets par caractère => si tu évalue sizeof(char) tu dois avoir 2.
    Si tu veux 1 byte par caractère, utilise de l'ansi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    i_BinarySize: integer;
    s_value: Ansistring;
    aby_array: array of byte;
     
    s_value := 'Manager 1';
     
     
    i_BinarySize := (Length(s_value) + 1) * SizeOf(AnsiChar);
    SetLength(aby_array, i_BinarySize);
    Move(s_value[1], aby_array[0], i_BinarySize);

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 528
    Par défaut
    La fonction BytesOF n'est pas censée faire ça toute seule ??

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut
    Exactement guillemouze encore une fois merci, en effet, ayant l'habitude de travailler avec version de Delphi antérieure à 2009 (l'unicode n'existait pas) j'ai du coup oublié ce "détail'. Et oui donc en Ansi forcément ça passe mieux
    Papy214 je ne connait pas cette fonction, je vais me renseigner

    Bonne semaine à vous !

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 528
    Par défaut
    ça fait partie de SysUtils. Mais je ne me souviens plus à partir de quelle version de Delphi.

    System.SysUtils.BytesOf

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

Discussions similaires

  1. String vers array of bytes.
    Par DakM dans le forum Langage
    Réponses: 2
    Dernier message: 07/11/2011, 17h38
  2. [Free Pascal] String et array sans {$H+}
    Par Invité dans le forum Free Pascal
    Réponses: 4
    Dernier message: 23/05/2011, 08h34
  3. String of byte array to byte array
    Par LadyN dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/04/2010, 19h14
  4. Réponses: 5
    Dernier message: 08/07/2008, 17h33
  5. ma base gonfle sans raison !!!
    Par hiul dragonfel dans le forum Access
    Réponses: 6
    Dernier message: 20/06/2005, 10h00

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