Récuperer toutes les données d'1 fichier Ini comportant plsrs sections [Résolu]

Gastounelli 5 Messages postés mercredi 23 juin 2004Date d'inscription 3 octobre 2005 Dernière intervention - 16 févr. 2005 à 21:43 - Dernière réponse : ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention
- 17 févr. 2005 à 10:03
Bonjour,
Je recherche une méthode simple pour récupérer toutes les données d'un fichier ini (comportant plusieurs sections) et les mettre dans une TStrings ou autre. Suis je obligé de parcourir les sections une par une puis d'enregistrer les valeurs de celle-ci ???
Je vous remercie pour votre aide
Afficher la suite 

5 réponses

Répondre au sujet
Gastounelli 5 Messages postés mercredi 23 juin 2004Date d'inscription 3 octobre 2005 Dernière intervention - 16 févr. 2005 à 23:04
+3
Utile
Salut Nico,
Ben en écrivant mon message, j'ai trouvé !!!! méthode LoadfromFile des Tstringlist. peu importe l'extansion du fichier à lire, du moins .txt, .rtf, .ini. toutes les lignes du fichier ini sont récupérées dans ma TString.

Bonne continuation
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Gastounelli
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 16 févr. 2005 à 22:00
0
Utile
Soient Str1 et Str2 deux variables TStrings, section une variable string :
Tu peux utiliser ReadSections(Str1) pour mettre toutes les sections et les mettre dans Str1 et ReadSectionValues(section; Str2) pour mettre toutes les valeurs de la section "section" dans Str2

@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Commenter la réponse de ni69
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 16 févr. 2005 à 22:23
0
Utile
Je complète un peu...
La procédure qui suit récupère toutes les sections et les stocke dans Memo1 (tu peux aussi utiliser une variable TStrings si tu veux, ça revient au même, mais le memo permet de visualiser ce que tu fais). Ensuite, Les valeurs sont extraites et stockées dans le memo2 sous la forme :
[section1]
val1= 2
val2=43
[section2]
val1=94
val2=72

(le nom des sections entre [ ] sont ajoutés pour pouvoir plus facilement s'y retrouver)

procedure TForm1.Button1Click(Sender: TObject);
var
Str : TStrings;
F : TIniFile;
a : integer;
begin
Str : = TStringList.Create;
F:= TIniFile.Create('C:\config.ini');
F.ReadSections(Memo1.Lines); // Récupère toutes les sections du fichier ini dans le memo1
For a : = 0 to Memo1.Lines.Count-1 do
begin
F.ReadSectionValues(Memo1.Lines.Strings[a],Str); // Récupère toutes les valeurs de la section en cours
Memo2.Lines.Add('['+Memo1.Lines.Strings[a]+']'); // Ajout du nom de la section pour plus de lisibilité
Memo2.Lines.AddStrings(Str); // On ajoute au contenu de memo2
end;
Str.Free;
F.Free;
end;


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Commenter la réponse de ni69
Gastounelli 5 Messages postés mercredi 23 juin 2004Date d'inscription 3 octobre 2005 Dernière intervention - 16 févr. 2005 à 22:52
0
Utile
Salut Nico,
je te remercie beaucoup de ton aide; j'avais parcouru les méthodes de TiniFile et vu celà, mais j'avais la flème de partir coder tous celà !!!! j'ai préféré me creuser les méninges, mais grâce à ton message, j'arrête et me lance !!!! très sympa d'avoir filé ce bout d code.
Bonne soirée
Fred
Pour ton info, l'ingé système de ma boite m'a demandé de créer un service windows qui n'autorise pas le lancement d'émule à certaines heures et killer celle ci si l'utilisateur modifie les fichiers de confs. Donc 2 fichier ini : 1 référence et l'autre coté utilisateur; je compare donc le contenu de ces fichiers de conf (comparaison des heures syst des fichiers ne suffisant pas). d'où ma question !!!! je te devais au moins ça pour te remercier de ton aide
Commenter la réponse de Gastounelli
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 17 févr. 2005 à 10:03
0
Utile
C'est vrai ça marche aussi comme ça


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Commenter la réponse de ni69

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.