Bonjour,
Je voudrais juste savoir comment on peut caster un TObject en "Array of Byte"
D'avance merci
Ben
Bonjour,
Je voudrais juste savoir comment on peut caster un TObject en "Array of Byte"
D'avance merci
Ben
ça n'a pas de sens !!!
que veux-tu faire avec ?
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Salut
A titre d'exemple :
UserLogon est un objet quelconque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 type PArr = ^TArr; TArr = array of Byte; var i: Integer; S1, S2: String; begin S1 := ''; S2 := ''; for i := 1 to UserLogon.ClassType.InstanceSize do begin S1 := S1 + Format('$%2.2d ',[PArr(UserLogon)^[I]]); if PArr(UserLogon)^[I] in [32..255] then S2 := S2 + Chr(PArr(UserLogon)^[I]) else S2 := S2 + '.'; end; ShowMessageFmt('Size = %d'#10'Caract: %s'#10'Binaire: %s',[UserLogon.ClassType.InstanceSize,S2,S1]);
Fais des tests et fais signe s'il y a un problème.
cdlt
e-ric
![]()
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
En fait ce que tu veux c'est mettre dans un tableau les octets de l'instance d'un objet, c'est ça ? C'est pour faire quoi au juste ?
Je pose la question parce que peut-être est que c'est de la sérialisation que tu cherches à faire. Dans ce cas c'est dans TRemotable que tu devrais orienter tes recherches.
Peut-être aussi est-ce que ton objectif est de stocker l'objet (son instance) dans une base de donnée. Dans ce cas, il est possible d'utiliser la méthode WriteComponentRes de TStream qui permet de passer un composant dans un stream. Voici un exemple : http://www.scalabium.com/faq/dct0065.htm
Enfin, si t'es d'humeur à jouer dans la mémoire directement j'imagine qu'il t'est possible de lire l'octet à l'adresse de l'objet et de lire tous les octets suivants sur une longueur de InstanceSize. Une fois fait, je ne sais pas ce que tu pourrais en faire toutefois.
Je n'ai pas énormément d'expérience sur ces forums mais une chose est certaine : les personnes qui donnent beaucoup de détails sur leurs intentions relativement au problème qu'ils rencontrent profitent généralement de l'expertise de ceux qui ont rencontré le même problème et qui ont trouvé la solution. En d'autres mots : non seulement c'est une bonne idée d'être précis dans ta question mais aussi sois le dans ton objectif final. Tes chances d'avoir une réponse fiable ne peuvent que décupler.
Bon dev!
-Slimjoe
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager