Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1150 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

   equivalent collection

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

equivalent collection

n°893028
red factio​n
Posté le 08-11-2004 à 10:32:39  profilanswer
 

je cherche lequivalent d'une collection vba en delphi c a dire un vecteur dans lequel on peut inserer des elements (integer,string,float) et y acceder par une clé de type string

mood
Publicité
Posté le 08-11-2004 à 10:32:39  profilanswer
 

n°893290
antp
Super Administrateur
Champion des excuses bidons
Posté le 08-11-2004 à 14:06:09  profilanswer
 

Tu peux utiliser une TStringList ou THashedStringList et ses propriétés Values, Names, etc., mais il faudra convertir toi-même les éléments en string.
 
C'est pour faire quoi ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°893296
red factio​n
Posté le 08-11-2004 à 14:13:05  profilanswer
 

Jai besoin dacceder regulierement a des elements se trouvant dans un fichier, jaimerai eviter de louvrir et de le parser a chaque fois
 
le fichier est organise comme ceci
 

Code :
  1. "DEF_PATH","C:\program files\xxxx"
  2. "REFER_DB","c:\xxxxxx"


 
apres je voudrais pouvoir faire  

Code :
  1. foo:=list['DEF_PATH']

et recuperer le path


Message édité par red faction le 08-11-2004 à 14:13:19
n°893383
antp
Super Administrateur
Champion des excuses bidons
Posté le 08-11-2004 à 15:39:03  profilanswer
 

utilise un fichier ini classique genre
DEF_PATH=c:\program files\...
et lis-le avec un TMemIniFile que tu ne crées qu'une seule fois au démarrage
 
si la syntaxe que tu as montée est obligatoire, je pense que la TStringList ou THashedStringList sera ce qu'il y a de plus facile comme équivalent des collections VB. La THashedStringList est plus rapide si tu as beaucoup d'éléments
 
val := Liste.Values['DEF_PATH'];
pour le T(Hashed)StringList
 
val := Ini.ReadString('paths', 'DEF_PATH', '');
pour le TMemIniFile


Message édité par antp le 08-11-2004 à 15:41:31

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°893398
red factio​n
Posté le 08-11-2004 à 15:54:40  profilanswer
 

donc en fait je genere une string ( temps de concatenation de  string enorme??) et je lassocie avec Liste.commatext puis je consulte ?

n°893407
antp
Super Administrateur
Champion des excuses bidons
Posté le 08-11-2004 à 16:00:38  profilanswer
 

Je sais pas, ça dépend de la tronche qu'a ton fichier et comment tu le lis.
Soit t'ajoutes chaque chaîne via un Add, mais il faut que la clé et la valeur soient séparées par un =
Soit tu appelles Values['Clé'] := Valeur pour chaque ligne que tu lis, après avoir découpé la chaîne en deux.
 
C'est pour ça que je suggérais d'utiliser un TMemIniFile avec une structure de fichier INI si jamais le format de fichier n'est pas obligatoirement celui que tu as présenté...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°893596
Kyle_Katar​n
Posté le 08-11-2004 à 18:57:00  profilanswer
 

Pour les fichiers ini au fait, comme on passe par les API Win, on est limités à 64 Ko non ?

n°893597
antp
Super Administrateur
Champion des excuses bidons
Posté le 08-11-2004 à 18:58:15  profilanswer
 

Avec TIniFile ça passe par l'API Windows, donc limité à 64 Ko et très lent parce qu'ouverture du fichier à chaque appel.
Avec TMemIniFile pas de limite, c'est entièrement fait en Delphi avec des THashedStringList : tout le fichier est lu et mis en mémoire à la création. Mais du coup les écritures ne sont pas immédiates : le fichier est écrit lorsque l'on appelle UpdateFile.


Message édité par antp le 08-11-2004 à 18:58:37

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

   equivalent collection

 

Sujets relatifs
"mysql_free_result" quel est son equivalent avec sqlite ?[perl] l'equivalent d'un tail -f ....
quel est l'équivalent en c++ de "selon" en algo??[RESOLU] equivalent "show table"
Equivalent en JSP du "die" de phpUn équivalent de onload pour mozilla?
[SGBD] Equivalent de rownum avec MySQL ?Equivalent de "mysql_insert_id" pour MS SQLserver
Equivalent d'un HashMap, mais ordonnée[vb] Objet equivalent à DistListitem en VBS ?
Plus de sujets relatifs à : equivalent collection


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR