Je dois réaliser une structure sous VB mais je ne sais pas vraiment comment faire, pour linstant j ai fait ca
Public Type Capteur
Nom As String ' nom du capteur (ex: TEMPERATURE_1)
Emplacement As String ' emplacement du capteur
TypeMeasure As String ' type de mesure du capteur
TypeSensor As String ' Type du capteur
SerialNumber As String ' numéro de série du capteur
Interface As String ' type d'interface du capteur
Number As Integer ' Numéro du capteur tel que défini dans le fichier ConfigHard.ini
LastMeasure As Single ' Valeur de la dernière mesure
LastTime As Date ' Date et heure de la dernière mesure
DBField As String ' Nom du champ correspondant dans la base de données
End Type
Public toto() As Capteur
Call IniReadItems(AppIniFile$, "SENSORS", toto().DBField)
Sauf que ca marche pas, en fait ce que je voudrais savoir c si j ai le droit par exemple de faire ca :
for i = 1 to 10
toto(i).number = i
Et si oui pourquoi ce que je vous ai montré au dessus ne marche pas ?
Le problème dans votre exemple est que vous ne donnez pas l'index du capteur dans la table toto. Il faut toujours faire référence à un élément de la table.
'=================variables=======================
Dim TabNom() As String
Dim i As Integer
Dim a As String
Dim cfg_Capteur() As String
'=================================================
ReDim MySensors(0)
Call IniReadItems(AppIniFile$, "SENSORS", TabNom()) 'permet de lire le nom des objets dans notre fichier
'MPEnv.ini (C:\Documents and Settings\chavaroc\Mes documents\ProjetsVB\532_M.P.Env)
For i = 1 To UBound(TabNom)
ReDim Preserve MySensors(UBound(MySensors) + 1)
a = IniReadString(AppIniFile$, "SENSORS", TabNom(i)) 'permet d'obtenir les caractérisitiques du capteur par rapport a la base de données
cfg_Sensors() = Split(a, "") 'permet de séparer les caractéristiques
cfg_Capteur() = Split(TabNom(i), "_") 'permet d'obtenir le numéro du capteur
MySensors(i).Nom = TabNom(i) 'écrit dans le tableau structurée a l'emplacement nom, le nom du capteur
MySensors(i).DBField = cfg_Sensors(0) 'écrit dans le tableau structurée a l'emplacement DBField, la variable correspondante sous la base de données
MySensors(i).TypeMeasure = cfg_Capteur(0) 'écrit dans le tableau structurée a l'emplacement TypeMeasure, le type de mesure du capteur
MySensors(i).Number = cfg_Capteur(1) 'donne le numéro du capteur
Next i
Ton code marche peut-être, mais il est beaucoup plus lent pour rien. Au cas où tu ne le saurais pas, lorsque tu fais un ReDim Preserve, VB alloue une zone plus grande, recopie le tout et désalloue l'ancienne. Sur un gros tableau ça peut trainer. M'enfin tu codes comme tu veux, maintenant tu sais pourquoi ton truc se traine(ra) avec plus de données
VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question