Ouverture, modif et sauvegarde. (sauvegarde ne fonctionne pas...)

Résolu
YB28 Messages postés 38 Date d'inscription lundi 23 avril 2012 Statut Membre Dernière intervention 29 juillet 2012 - 13 juin 2012 à 11:57
YB28 Messages postés 38 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

4 réponses

cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
13 juin 2012 à 13:45
avant tt fermer le fichier !!

CloseFile(fichierH);
@+
3
YB28 Messages postés 38 Date d'inscription lundi 23 avril 2012 Statut Membre Dernière intervention 29 juillet 2012 1
13 juin 2012 à 12:22
Il m'affiche une fenêtre d'erreur "EFCreateError"...
0
cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
13 juin 2012 à 13:40
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;

@+
0
YB28 Messages postés 38 Date d'inscription lundi 23 avril 2012 Statut Membre Dernière intervention 29 juillet 2012 1
13 juin 2012 à 14:32
Merci beaucoup ;)
0
Rejoignez-nous