Dpx26000
Messages postés9Date d'inscriptionvendredi 26 février 2010StatutMembreDernière intervention 1 mars 2011
-
12 mars 2010 à 19:44
Dpx26000
Messages postés9Date d'inscriptionvendredi 26 février 2010StatutMembreDernière intervention 1 mars 2011
-
13 mars 2010 à 21:30
Bonjour,
J'ai encore besoin de votre aide si possible.. '^^
Voilà mon problème. J'ai emprunter un bouquin sur delphi pour pouvoir approfondir mes connaissances sur ce logiciel et j'ai cherché sur de nombreux sites mais je bloque à un endroit.
En effet, j'ai appris comment écrire, lire des données dans un fichier texte afin de sauvegarder ce que l'uilisateur saisie lorsqu'il utilise l'application et qu'il puisse les récupérer lorsqu'il la ré-ouvre.
Toujours sur mon idée de dictionnaire, je conserve mes données ( mots et définitions ) dans un fichier texte.
Je les sauvegarde de la manière suivante :
monMot1 : maDéfinition1.
monMot2 : maDéfinition2.
...
Bien entendu monMot et ma définition sont écrit sous forme de texte dans mon fichier.
A présent, j'aimerais savoir comment je peux récupérer la définition après avoir recherché dans mon fichier le mot correspondant.
Je m'explique :
J'aimerais faire en sorte que mon fichier texte soit un tableau de plusieurs lignes et d'une colonne :
Par le biais d'une boucle, j'aimerais passer d'une ligne à une autre et une fois que je trouve mon mot, par exemple ici monMot2, je récupère la définition correspondante.
J'obtiendrais ainsi dans mon mémo ou mon label juste maDéfinition2
J'en suis là mais le souçi est qu'il n'y a pas la boucle ni le tableau et donc si je tape n'importe quel mot, j'obtient la définition du premier mot du fichier.
Quelqu'un arriverait-il à modifier cette procédure pour faire cela avec des commentaires afin que je comprenne le principe?
procedure maProcédure(Fich,monMot:string);
var
F: TextFile;
define:string;
begin
if not FileExists(Fich) then exit;
AssignFile(F, Fich);
Reset(F);
Readln(F, define); //lit une ligne du fichier jusqu'au prochain saut de ligne
FDico.mem_define.Caption := define; //Applique la définition au label.
CloseFile(F);
end;
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 13 mars 2010 à 11:58
Tu dois faire une recherche dichotomique, je te conseille de charger ton ou tes fichiers dans des tstringlist pour une recherche plus simple et rapide.
A ta place je ferais 2 fichiers, un contenant les mots, un autre les définitions, la relation est que le Nème mot a la définition dans le fichier 2 en ligne N.
Dpx26000
Messages postés9Date d'inscriptionvendredi 26 février 2010StatutMembreDernière intervention 1 mars 2011 13 mars 2010 à 21:30
Merci JulioDelphi pour ta réponse rapide et claire !
C'est vrai que tu as eu une bonne idée de séparer les mots des définitions, cela va m'enlever bien des problèmes.
Merci aussi à toi f0xi, pour l'instant je ne sais pas trop utiliser les bases de données. Dans le guide de développement Borland de Delphi 7, je n'ai fait que survoler ces chapitres.
Je m'y pencherais un peu plus sérieusement lorsque j'aurais du temps libre.
Merci à vous, je vais voir si j'arrive à régler mon problème avec cela ;)