Tblobfield

Soyez le premier à donner votre avis sur cette source.

Vue 7 825 fois - Téléchargée 987 fois

Description

Enregistrement de données dans un TBlobField
On peut enregistrer n'importe qu'elle type de donnée dans un champ Blob (Binary Large OBject).

Conclusion :


merci de commenter le code.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_AccessToYou
Messages postés
34
Date d'inscription
mardi 21 novembre 2000
Statut
Membre
Dernière intervention
16 juin 2016
1
4 juil. 2007 à 02:08
54 bytes c'est ça....
merci f0xi, c'est très gentil de ta part mais:
tes remarque au sujet de la declaration d'enregistrement ne marche plus avec les PACKED RECORD.
on ne peut pas utiliser un type de donnée de capacité non definie comme STRING.

le mot PACKED fait tt la différence.
f0xi
Messages postés
4205
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
12 mars 2022
37
4 juil. 2007 à 00:55
salut,

bon, c'est pas mal comme debut mais j'ai quelques conseils a te donner :

premierement evite dans tes commentaires de code de mettre des abreviations de langage (qq, +sieur etc)

deuxiement evite aussi les "lol" dans ces derniers, le "lolage" est trés mal vus. au mieux mets un smyle de ce style :) ou ;)

troisiement la partie "explication finale" est faite pour emetre des remarques importantes concernant le programme/le code que tu a mis. en aucuns cas tu ne peu y exposer ta vie etc.

quatriement les commentaires qu'on inclus dans le code doivent toujours etre hors du code, bien que le concept de placer par exemple : (..., SizeOf(truc) {xx bytes} ); ne soit pas une erreur, il est plus simple de la placer aprés, ou a la declaration du type (comme tu l'as fait plus haut). tu remarquera trés vite que ce genre de positionnement des commentaires (a l'interieur du code) devient exasperant quand on remanie ce dernier.
par exemple pour un record tu peu faire :
type
{ TTruc
size : 54 bytes [ 4 | 21 | 21 | 8 ]
}
TTruc = record
A : integer;
B : string[20];
C : string[20];
D : double;
end;

ce qui permet de donner une information courte et comprehensible, et surtout bien respecter le sens de la declaration.
pour ce qui est string dans les records il y a une technique un peu plus complexe mais qui permet d'optimiser le poids des données quand les chaines peuvent etre de longeur trés variables :

TTruc = record
ASize, BSize : Cardinal;
AStr, BStr : String;
end;

ici la techinique consiste a lire la taille des chaines en premier (8 octets) ensuite on aurat plus qu'a ajuster la taille de AStr et BStr pour les lires :

Read(MonTruc.ASize, 4);
Read(MonTruc.Bsize, 4);
SetLength(MonTruc.AStr, MonTruc.ASize);
SetLength(MonTruc.BStr, MonTruc.BSize);
Read(MonTruc.AStr, MonTruc.ASize);
Read(MonTruc.BStr, MonTruc.BSize);

parfois il vaut mieux bouffer 8 octets de plus mais au final ce sera toujours moins que des chaines fixe de 20 ou 80 ou plus octets, qui ne seront pas remplie a fond forcement.
le type Cardinal pour ASize ou BSize est facultatif, si on sais que les chaines sont plutot courte on peu le reduire en Word (max=65535) ou Byte (max=255).
ce qui permet de stocker n'importe quel type de chaine de caractere (mots, phrase, page de texte, livre dont la taille est inferieure a 2Go).

et pour finir, même si l'exemple est court, un petit programme d'exemple dans une archive ne fait jamais de mal.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.