Opendialog et fichiers texte

Résolu
Signaler
Messages postés
13
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
18 août 2008
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
Lorsque j'appel un opendialog, je ne peut plus ouvrir de fichier texte, après.

>L'ouverture de l'opendialog:
opendialog1.InitialDir:='';
opendialog1.Execute;
if opendialog1.filename='' then showmessage('Redéfinissez le chemin du fichier')
else edit1.Text:=opendialog1.FileName;

>L'ouverture de fichier:
ouverture_fichier_F;

i:=0;
form1.combobox3.clear;
//affichage de la liste de matricules d'individus
while not eof(F) do
begin
seek(F,i);
read(F,individu);
form1.combobox3.Items.Add(individu.matricule);


i:=i+1;
end;

:Les données de F ne sont plus lues!

5 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
opendialog modifie le chemin par defaut de l'application donc ton
assignfile redemarre du chemin choisi pour ouvrir le fichier de
l'opendialog il faut faire:

assignfile(f,opendialog1.filename).

si tu veux repartir du repertoire precedent il faut le memoriser avant l'appel a opendialog.execute:

chemin_actuel: GetCurrentDir;

et le restaurer apres. SetCurrentdir(chemin_actuel);

bonne prog
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
il y a plus simple pour charger un fichier texte dans un combobox:

form1.combobox3.Items.loadfromfile(opendialog1.FileName).

ensuite

comment ouvres-tu ton fichier dans ouverture_fichier_F?;

comment as-tu declaré ton fichier F?

si ton fichier est un fichier texte tu ne peux pas le charger dans une variable record.

bonne prog
Messages postés
13
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
18 août 2008

L'opendialog me permet de connaitre le nom d'un fichier autre que celui que je veux ouvrir avec "ouverture_fichier_F"

"ouverture_fichier_F" marche sauf après l'ouverture de l'opendialog.

Pour l'ouverture de F:

procedure ouverture_fichier_F;
begin
//Attribution d'un nom et d'un emplacement au fichier f
assignfile(F,'\individu.dat');

{$I-}reset(F);{$I+}
if ioresult<>0 then //rewrite(f) else reset(f);
begin
if not FileExists('/individu.dat') then
begin
rewrite(f)
end
else
begin
{$I-}closefile(F);
reset(F);
end;
end;



//mise en place du curseur au début du fichier
seek(F,0);
end;
Messages postés
13
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
18 août 2008

Merci beaucoup, ça marche.

Ca donne:
dossier_courant:=GetCurrentDir;
opendialog1.InitialDir:='';
opendialog1.Execute;
if opendialog1.filename='' then showmessage('Redéfinissez le chemin du fichier')
else edit1.Text:=opendialog1.FileName;
SetCurrentdir(dossier_courant);
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
cherche l'erreur :



dossier_courant:=GetCurrentDir;

opendialog1.InitialDir:='';

opendialog1.Execute;

if opendialog1.filename='' then showmessage('Redéfinissez le chemin du fichier')

else edit1.Text:=opendialog1.FileName;






A modifier par :



if opendialog1.execute then

edit1.text := opendialog1.filename;



tout simplement



TOpenDialog.Execute renvois True si l'utilisateur click sur le boutton OK de opendialog et qu'un fichier est selectionné.

Renvois False dans tout les autre cas (fichier non selectionné, appuis sur Annuler ou Fermer).