Citation Envoyé par drake56 Voir le message
Bonjour,

Merci pour ta réponse, par contre, je fais comment pour insérer le contenu de mon AnsiString (le blob) dans le vecteur de caractères non signés ?
Je ne suis déjà pas sur que le type AnsiString soit le plus indiqué pour récupérer le contenu d'un blob

A te lire, je présumes que tu travailles avec la VCL de borland, et je ne suis plus très familiarisé avec elle (ca fait un bail que je ne l'ai plus utilisée ) mais, pour autant que je me souvienne, AnsiString est, plus ou moins, l'équivalent d'une chaine de caractères adaptée à la représentation de caractères UTF.

Et, pour autant que je me souvienne, le caractère nul ('\0') est également considéré comme étant le caractère représentant d'office la fin d'une chaine. Note que, si c'est un autre caractère qui est utilisé à cette fin, cela ne changera de toutes manières pas grand chose au problème:

Toutes les manipulations que tu pourras faire sur ton AnsiString, dont, essentiellement, celles qui tendent à en déterminer la taille, vont se baser sur le premier caractère considéré comme étant une "fin de chaine" qu'elles vont rencontrer pour fournir leur résultat, avec, comme principal "effet secondaire" que tout suit ce premier caractère rencontré sera purement et simplement ignoré (la chaine de caractères sera littéralement tronquée après le premier caractère servant de représentation de la fin de chaine rencontré).

Le fait que tu voies correctement le contenu du blob dans le débuggeur ne changera rien à cet état de fait

Or, comme le nom l'indique, blob est un "Bynary Large OBject", ce qui implique, comme je l'ai fait remarquer dans ma première intervention, qu'il peut, fatalement, y avoir "n'importe où" dans cet objet un caractère dans cet objet qui risque, d'une manière ou d'une autre, d'être considéré comme "caractère terminal d'une chaine de caractère" alors que le contenu n'est pas complet, et ce, quel que soit le type de la chaine de caractères que tu utilises

tu aurais donc largement intérêt à directement récupérer le contenu de ton blob dans quelque chose de plus adapté à la représentation en mémoire de ton blob.

Je te conseillerais de te tourner vers un tableau de caractères, que ce soit un std::vector<unsigned char> ou un équivalent UTF fourni par la VCL
EDIT: En effet, si tu veux te contenter de sauvegarder "correctement" le contenu de ton blob, tant que tu veilles à enregistrer le contenu dans un "fichier binaire" et que tu es sur de ne pas en avoir tronqué le contenu, n'importe quel conteneur permettant de représenter des caractères (UTF ou non) fera l'affaire