JEU DU PENDU DES SAVANTS DE PHYSIQUE-CHIMIE

John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009 - 19 août 2007 à 22:20
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009 - 20 août 2007 à 18:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43829-jeu-du-pendu-des-savants-de-physique-chimie

John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
20 août 2007 à 18:23
Oki.

Avant de t'expliquer, j'ai vu quelques petites choses qui ne vont pas dans ton code, particulierement dans l'unité "Dictionnaire" puisque c'est elle qui te pose problème lors du chargement ou de la sauvegarde du fichier ...

A la ligne 49, tu ecris

if length(Edit1.Text)<3 then
Formerreur.showmodal
else
listdico.Items.Add(uppercase(Edit1.Text));
Edit1.Clear;
dico.listdico.Items.SaveToFile(open.filename);

Traduit textuellement, ça donne si la longueur est <3, j'affiche l'erreur, sinon j'ajoute l'element à la liste, ensuite je sauvegarde. Ce qui signifie qu'erreur ou pas, l'élement sera sauvegardé -> pas glop à mon avis ...

Il aurait été plus logique d'ecrire (pas la peine de sauvegarder un élément vide) :

if length(Edit1.Text)<3 then
begin
Formerreur.showmodal;
exit;
end;
listdico.Items.Add(uppercase(Edit1.Text));
Edit1.Clear;
dico.listdico.Items.SaveToFile(open.filename);

Ensuite je suis pas sûre que tu utilises correctement les compo TSaveDialog et TOpenDialog. Ceux ci sont censé ouvrir une boite de dialogue windows pour ouvrir ou sauver un fichier, or tu ne te sers pas de ces boîte de dialoges ...

Si tu veux sauver ou ouvrir un fichier, pas besoin de ces deux compo, écrire simplement "dico.listdico.Items.SaveToFile(<chemin fichier>)" devrait suffire.

Pour finir, si tu veux localiser un fichier qui est dans le même dossier que ton application fait comme ceci :

1) tu crée une variable chaine de caracteres

var CheminApplcation:string;

2) tu initialise ta variable avec le chemin complet vers ton application

CheminApplication:=ExtractFilePath(Application.ExeName);

3) si tu veux utiliser le fichier "dico.txt"

dico.listdico.Items.LoadFromFile(CheminApplication+'dico.txt');

Voila :)
james le programmeur Messages postés 1 Date d'inscription mardi 9 mai 2006 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 10:07
John, je n'ai pas compris comment faire pour la localisation du fichier dictionnaire, comment initialiser les champs "FileName" de "Open" et "Save".Si tu peux me donner plus de détail merci.
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
19 août 2007 à 22:20
Si je peux aider ...
De quelle remarque tu parles ?
Rejoignez-nous