denis42160
Messages postés4Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention19 avril 2006
-
18 avril 2006 à 16:42
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012
-
19 avril 2006 à 15:16
Bonjour,
j'ai un petit problem pour la lecture de mon point ini.
je n'arrive pas a savoir combien il y a de clé dans chaque section et ni les recupperer avec leur valeur .
de plus les valeurs que je veux recupperer doivent etre en string et non en tstrings.
Pouvez vous m'aider ?
merci d'avance
voici la tete de mon point ini:
[LabCh F11 10Deg]
couleur Std_00004=couleur,Std_00004,LabCh,F11,10Deg,26.9113159179687,31.8990821838379,32.88
couleur Std_00001=couleur,Std_00001,LabCh,F11,10Deg,37.8929672241211,35.3700294494629,33.86
couleur Std_00006=couleur,Std_00006,LabCh,F11,10Deg,33.0061149597168,60.8440361022949,93.55
couleur Std_00003=couleur,Std_00003,LabCh,F11,10Deg,6.37308883666992,6.30886840820312,6.226
couleur Std_00008=couleur,Std_00008,LabCh,F11,10Deg,3.80428123474121,3.69724774360657,3.617
couleur Std_00005=couleur,Std_00005,LabCh,F11,10Deg,8.74617767333984,8.05198764801025,7.605
couleur Std_00002=couleur,Std_00002,LabCh,F11,10Deg,21.1437301635742,27.5718650817871,33.63
couleur Std_00007=couleur,Std_00007,LabCh,F11,10Deg,14.6605501174927,15.2568807601929,15.89
[LabCh D65 10Deg]
test Std_00002=test,Std_00002,LabCh,D65,10Deg,26.7461776733398,31.7706413269043,32.79510879
test Std_00019=test,Std_00019,LabCh,D65,10Deg,27.0978584289551,32.1070327758789,33.08256912
test Std_00018=test,Std_00018,LabCh,D65,10Deg,3.27217125892639,3.20489287376404,3.165137529
test Std_00013=test,Std_00013,LabCh,D65,10Deg,26.6636085510254,31.660551071167,32.660549163
test Std_00010=test,Std_00010,LabCh,D65,10Deg,27.1039752960205,32.1681938171387,33.08868408
test Std_00011=test,Std_00011,LabCh,D65,10Deg,27.1590213775635,32.2293586730957,33.14984893
test Batch_00001=test,Batch_00001,LabCh,D65,10Deg,27.131498336792,32.2324142456055,33.18960
test Std_00012=test,Std_00012,LabCh,D65,10Deg,26.5718650817871,31.5321102142334,32.54740142
test Std_00009=test,Std_00009,LabCh,D65,10Deg,27.0978584289551,32.1070327758789,33.08256912
test afich Std_00004=test afich,Std_00004,LabCh,D65,10Deg,3.18654441833496,3.1651375293731
test afich Std_00001=test afich,Std_00001,LabCh,D65,10Deg,3.19571876525879,3.1498470306396
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 18 avril 2006 à 18:48
pour l'enumération des clés c'est très simple !!! mais il faut obligatoirement passer par un TStrings
procedure TForm1.Button1Click(Sender: TObject);
var
Strings : TStrings;
I : Integer;
begin
Strings := TStringList.Create;
with TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'MyIni.ini') do
begin
ReadSection('MySection' , Strings); //<=== recupère toutes les clés
for i := 0 to Strings.Count -1 do
begin
ShowMessage(Format('Clé :%s Valeur %s' , [Strings[i] , ReadString('MySection' , Strings[i], 'Vide')]));
end;//i++
Free;
end;
Strings.Free;
end;
pour les sections uniquement c'est "ReadSections" qu'il faut utiliser !!!
denis42160
Messages postés4Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention19 avril 2006 19 avril 2006 à 09:25
Merci pour l'info ca m'a bien aidé.
J'aurai aimé savoir aussi comment peut on supprimmer des clé lorsqu'elles ont été lu mais pas toutes les clées d'une section juste celles qui sont nommé test affich par exemple?
[LabCh D65 10Deg]
test Std_00002=test,Std_00002,LabCh,D65,10Deg,26.7461776733398,31.7706413269043,32.79510879
test Std_00019=test,Std_00019,LabCh,D65,10Deg,27.0978584289551,32.1070327758789,33.08256912
test Std_00018=test,Std_00018,LabCh,D65,10Deg,3.27217125892639,3.20489287376404,3.165137529
test Std_00013=test,Std_00013,LabCh,D65,10Deg,26.6636085510254,31.660551071167,32.660549163
test Std_00010=test,Std_00010,LabCh,D65,10Deg,27.1039752960205,32.1681938171387,33.08868408
test Std_00011=test,Std_00011,LabCh,D65,10Deg,27.1590213775635,32.2293586730957,33.14984893
test Batch_00001=test,Batch_00001,LabCh,D65,10Deg,27.131498336792,32.2324142456055,33.18960
test Std_00012=test,Std_00012,LabCh,D65,10Deg,26.5718650817871,31.5321102142334,32.54740142
test Std_00009=test,Std_00009,LabCh,D65,10Deg,27.0978584289551,32.1070327758789,33.08256912
test afich Std_00004=test afich,Std_00004,LabCh,D65,10Deg,3.18654441833496,3.1651375293731
test afich Std_00001=test afich,Std_00001,LabCh,D65,10Deg,3.19571876525879,3.1498470306396
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 19 avril 2006 à 15:14
bah c'est exactement la même chose !! sauf qu'on ajoute une petite vérification
procedure TForm1.Button1Click(Sender: TObject);
var
Strings : TStrings;
I : Integer;
begin
Strings := TStringList.Create;
with TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'MyIni.ini') do
begin
ReadSection('LabCh D65 10Deg' , Strings); //<=== recupère toutes les clés
for i := 0 to Strings.Count -1 do
begin
if SameText(Copy(Strings[i], 1 , 4), 'test') then // on compare
DeleteKey('LabCh D65 10Deg' , Strings[i]);
end;//i++
Free;
end;
Strings.Free;
end;
voilà ça efface toutes les clés commencant par 'test', nota pour SameText il faut inclure SysUtils dans la clause USES si ce n'est pas déja fait !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?