Salut,
lorsque je regarde ton code plusieurs chose me chagrine.
la technique que tu utilises, si je comprend bien ton code, n'est déjà pas très académique ;) mais ce n'est pas si grave que ça !
pour le code de recherche :
//-----cherche la ou inserer la chaine dans le fichier et si elle est dedans--------
procedure TForm1.Dedans (var oui:boolean; var place:integer);
var fichier:Textfile;
nom_prenom1,nom_prenom2:string;
begin
Assignfile(fichier, 'Annuaire.txt');
FileMode:= 2;
Reset(fichier);
try
// Ce n'est pas le Nom et le Prénom que tu compares ?
nom_prenom1: =(LabeledEdit1.Text+';'+labeledEdit1.Text+';');
place:= -1;
repeat
readln(fichier,nom_prenom2);
place:=place+1;
until (nom_prenom1<nom_prenom2) or (SeekEof(fichier));
if nom_prenom1=nom_prenom2
then
begin
Label7conf.Caption:='La personne est déjà dans l''annuaire';
oui:=true;
end
else oui:=false;
Finally
CloseFile(fichier);
end;
end;
la deuxième chose qui me chagrine, c'est que si j'ai bien compris tu enregistres ton contact ainsi que les infos qu'il lui sont propres sur une même ligne avec des séparateurs ";"
donnee:=(LabeledEdit1.Text+';'+LabeledEdit2.Text+';'+LabeledEdit3.Text+';'+
LabeledEdit4.Text+';'+LabeledEdit5.Text+';'+LabeledEdit6.Text+';'+
LabeledEdit7.Text+';'+LabeledEdit8.Text+';'+LabeledEdit9.Text+';'+
LabeledEdit10.Text+';'+LabeledEdit11.Text+';'+LabeledEdit12.Text+';'+
LabeledEdit13.Text+';'+LabeledEdit14.Text+';'+Edit1com.Text+';');
writeln(fichier,donnee);
Ce que je ne comprend pas c'est que tu relis ta ligne au niveau de ta première procedure et tu considères qu'il n'y a que le nom et le prénom.
nom_prenom1:=(LabeledEdit1.Text+';'+labeledEdit1.Text+';');
place:=-1;
repeat
readln(fichier,nom_prenom2);
place: =place+1;
until (nom_prenom1<nom_prenom2) or (SeekEof(fichier));
Je ne vois pas comment ta comparaison puisse fonctionner, sauf si je n'ai pas compris ton code :)
pour la comparaison de chaine de caractère je te conseil le function CompareStr Compare des chaînes en tenant compte de la distinction minuscules/majuscules.
ou CompareText Compare des chaînes par valeur ordinale sans tenir compte de la distinction minuscules/majuscules.
P.S. : afin que tu puisses reprendre ton code plus tard et que tu puisses le comprendre rapidement, ainsi que d'autre personnes, je te conseil de nommer des composants ainsi que te variable de manière à savoir à quoi elles servent.
Bonne Prog,
Olivier.