Ouverture, modif et sauvegarde. (sauvegarde ne fonctionne pas...) [Résolu]

Messages postés
39
Date d'inscription
lundi 23 avril 2012
Statut
Membre
Dernière intervention
29 juillet 2012
- - Dernière réponse : YB28
Messages postés
39
Date d'inscription
lundi 23 avril 2012
Statut
Membre
Dernière intervention
29 juillet 2012
- 13 juin 2012 à 14:32
Bonjour,
Dans mon programme je cherche à ouvrir un fichier, le modifier et enfin l'enregistrer. J'aimerais que tout ceci ce fasse à l'appui d'un seul bouton. J'ai effectué le code suivant :
procedure TForm1.bt_modifHClick(Sender: TObject);
var fichierH : textfile;
    ligne   : string;
    StringList: TStringList;
    nb,Compte: Integer ;

begin
  if OpenDialog1.Execute then
  begin
    assignfile(fichierH,OpenDialog1.filename);
    reset(fichierH); //initialise
    while not eof(fichierH) do begin //cette boucle répètera la lecture d'une ligne tant que nous n'aurons pas atteint la fin du document EOF
    readln(fichierH,ligne);//à chaque fois que l'on utilisera readln on passera à la ligne suivante.
    memo3.lines.add(ligne); // ajoute notre ligne au memo
    end;

{Pour rechercher IHM_NB_TRADUCTIONS dans le fichier}
    StringList:= TStringList.Create;
    Edit7.Text:=OpenDialog1.filename;
    StringList.LoadFromFile(OpenDialog1.filename);// fichier de recherche
    for nb:=0 to StringList.Count-1 do
    begin
    Compte:=AnsiPos(edit4.text,StringList.Strings[nb]);
      if(Compte>0)then
      begin
      Memo3.Lines[nb]:='#define IHM_NB_TRADUCTIONS'+#9#9+ inttostr(strtoint(Edit6.Text)-strtoint(Edit5.Text)+1);
      label7.Caption:='Item trouvé à la ligne '+IntToStr(nb+1) +' à la position '+IntToStr(Compte);
      break;
      end;
    end;
    StringList.Clear;
    StringList.Free;
{Fonction de sauvegarde}
    if SaveDialog1.Execute then
  begin
  Edit7.Text:=SaveDialog1.filename;
  if fileExists(Edit7.Text) then
    begin
      if Application.MessageBox('Êtes-vous sûr de vouloir écraser le fichier existant ?','ATTENTION',MB_YESNO)=IdNo then
         ShowMessage('Fichier non enregistré')
      else
         Memo3.Lines.SaveToFile(Edit7.Text);// ne fonctionne pas...
    end
    else
    Memo3.Lines.SaveToFile(Edit7.Text);// Fonctionne 
  end;
  end;
end;


Sauf que je n'arrive pas à enregistrer le fichier sous le même nom.
Merci de votre aide ;)
YB
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
111
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
29 avril 2013
1
3
Merci
avant tt fermer le fichier !!

CloseFile(fichierH);
@+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 128 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_walidlam
Messages postés
39
Date d'inscription
lundi 23 avril 2012
Statut
Membre
Dernière intervention
29 juillet 2012
1
0
Merci
Il m'affiche une fenêtre d'erreur "EFCreateError"...
Commenter la réponse de YB28
Messages postés
111
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
29 avril 2013
1
0
Merci
salut !!
essayer avec l'extension de fichier et effacer le..
if fileExists(Edit7.Text'+'extension fichier) then
    begin
      if Application.MessageBox('Êtes-vous sûr de vouloir écraser le fichier existant ?','ATTENTION',MB_YESNO)=Idyes then begin 
DeleteFile('Edit7.Text'+'extension fichier');
 Memo3.Lines.SaveToFile(Edit7.Text'+'extension fichier);
 end else 
  ShowMessage('Fichier non enregistré')
    
  end;

@+
Commenter la réponse de cs_walidlam
Messages postés
39
Date d'inscription
lundi 23 avril 2012
Statut
Membre
Dernière intervention
29 juillet 2012
1
0
Merci
Merci beaucoup ;)
Commenter la réponse de YB28