waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013
-
8 oct. 2007 à 00:06
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008
-
8 oct. 2007 à 23:05
bonjour
pour un petit prog j'utilise les fichier INI pour la sauvegarde de parametres ect...
il a la structure suivante
[info]
...
[Parametres]
....
la section Parametres contient un certain nombre de ligne (variable n) contenant chacune 4 données séparées par un ":" (NomLong:NomCourt:N°1:N°2)
ex:
Benzodiazepine:benzo:212:323
Carbamazepine:carba:312:476
ect...
comment recuperer ces données dans un tableau à 4 colonnes et n lignes?
Idem si on a modifier un case du tableau comment mettre à jour le fichier INI?
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 8 oct. 2007 à 09:58
Bonjour,
Heu question bête avant de répondre, mais devant tes noms de médocs, tu as bien une valeur clef et un signe égal au moins de ce genre là P1=xxx, P2=yyy ?
[Parametres]
P1=Benzodiazepine:benzo:212:323
P2=Carbamazepine:carba:312:476
Sinon impossible de lire ton INI via les API système, et dans ce cas un simple fichier texte non structuré à la sauce INI suffirait :)
Admettons que ce soit le cas, je te proposes un algo ( considérant que c'est un bete fichier texte (medocs.txt) avec ces lignes là :
Benzodiazepine:benzo:212:323
Carbamazepine:carba:312:476
http://www.fbsl.net (Open) Ouvrir ton fichier en mode ligne à ligne.
(Do) Tant que fichier contient des lignes
(Get)Pour chaque ligne lue, la stocker dans un tableau dynamique
(Get + structure )Pour chaque ligne de ce tableau lue, Splitter chaque ligne en un tableau dynamique de 4 items chacuns
(Loop)
(Close) Fermer fichier texte
Gerôme GUILLEMIN ( auteur du langage FBSL )
-------------------------------------
'// Structure: Benzodiazepine:benzo:212:323
Type MEDOCS
$NOM_L * 32
$NOM_C * 16
%ID1
%ID2
End Type
Dim e, %i=0, vtMed[] As MEDOCS, vtMedocs[] = Array_FromFile( ".\Medocs.txt", lenB(MEDOCS) )
// Découper chaque ligne et la stocker sous forme de tableau dynamique
ForEach e In vtMedocs
vtMed[i].NOM_L = StrToken( e, ":", 1 ): vtMed[i].NOM_C = StrToken( e, ":", 2 )
vtMed[i].ID1 = StrToken( e, ":", 3 ): vtMed[i].ID2 = StrToken( e, ":", 4 )
i = i + 1
Next e
// Changer un des élements du tableau
vtMed[1].NOM_L = "Carbocistéine": vtMed[1].NOM_C = "carbo"
vtMed[1].ID1 = 431: vtMed[1].ID2 = 432
// Re lire le découpage effectif (et pourquoi pas le sauvegarder à ce moment là)
ForEach e In vtMed
? e.NOM_L, ":";
? e.NOM_C, ":";
? e.ID1, ":";
? e.ID2
Next e
Pause
/* Voici le résultat attendu :
Benzodiazepine:benzo:212:323
Carbocistéine:carbo:431:432
*/
waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013 8 oct. 2007 à 21:17
merci Geddi pour ta reponse rapide.
Je n'avais pas envisagé ce probleme et après avoir réfléchi je pense que le fichier INI est la meilleure solution pour moi.
Je vais faire comme ton exemple avec l'ajout de P1=... P2=... ect...
En jonglant avec un tableau pour la modif/suppression/ajout de parametres et en le reinjectant dans le INI.
Pour cela j'ai juste besoin d'un eclairsissement car je ne maitrise pas bcp les INI.... Dans une section (dans mon cas [Parametres]) puis-je ajouter des sous-sections de facon dynamique (par le code) sans ouvrir manuellement le INI?
merci pour ton aide
ps: si tu as un petit exemple pour moi je suis preneur