Remplir un record à partir d'une table [Résolu]

Messages postés
10
Date d'inscription
lundi 21 mars 2005
Dernière intervention
19 novembre 2009
- - Dernière réponse : ikremnitz
Messages postés
10
Date d'inscription
lundi 21 mars 2005
Dernière intervention
19 novembre 2009
- 19 nov. 2009 à 14:04
Bonjour,

j'ai d'un coté un record
TMonRecord = record
Champ1 : string;
Champ2 : string;
...

et de l'autre un table avec au mois ces 2 données
NomChamp: le nom du champ du record
ValChamp: la valeur qu'on doit y mettre

Je cherche à remplir ma structure en faisant quelquechose du style
MonRecord(NomChamp) = ValChamp

Est-ce que c'est possible ?
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
10
Date d'inscription
lundi 21 mars 2005
Dernière intervention
19 novembre 2009
3
Merci
Bonjour,

merci zwyx pour ta réponse, mais ce n'était pas tout à fait ce que je voulais.

J'ai une table:
NomChamp | Valeur
'Champ1' 'toto'
'Champ2' 'titi'

Je recherche à remplir un record en faisant
MonRecord.NomChamp := Valeur
mais cela ne donne rien.

J'ai résolu mon problème, grâce à un collègue, qui m'a proposé de créer une classe TObjet qui contient un attribut Nom et un attribut Valeur.
Puis de créer une classe TRecord avec un attribut Contenu qui est un tableau de TObjet. Et de rajouter une fonction ChampParNom qui à partir d'un nom renvoie l'attribut Valeur, qu'il n'y a plus qu'à mettre à jour.

Merci et bonne journée.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de ikremnitz
Messages postés
152
Date d'inscription
jeudi 22 novembre 2007
Dernière intervention
21 mars 2016
0
Merci
Salut ikremnitz,

Il faudrait que tu définisse des identifiants de type simple (chaîne ou nombre) qui identifient chaque donnée de ta table, des clés primaires en quelques sortes.

Tu crées ensuite deux méthodes: une qui met à jour les données de ton record avec celle de ta table, par exemple
SetData(const ADonneesEnregistrees: TMonRecord);

et sa réciproque, qui met à jour les données de ta table avec celles du record, par exemple:
GetData(var ADonneesPerimees: TMonRecord);

Dans ces méthodes, tu peux parcourir tous les champs de ta structures ou toutes les valeurs de ta table et faire correspondre les deux grâce à l'identifiant que tu auras choisi pour chaque champs.

Voilà, je sais pas si c'est très clair, mais c'est à peu près comme ça que j'envisage la solution.

Bonne soirée.
Commenter la réponse de zwyx

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.