[DELPHI] Enregistrement de fichiers texte

Enregistrement de fichiers texte [DELPHI] - Delphi/Pascal - Programmation

Marsh Posté le 18-04-2006 à 10:35:50    

Bonjour, pour mon projet de fin d'année en programmation, je suis amené à réaliser un traîtement de texte. Cependant, je sèche sur la fermeture d'un fichier. Aucun type de fichier n'apparaît dans le champ ad hoc et aucun fichier ne s'enregistre. pourriez-vous me dire ce qu'il faut parametrer afin que ceci marche ?
 
Merci.

Message cité 1 fois
Message édité par BenchMark le 18-04-2006 à 10:36:20
Reply

Marsh Posté le 18-04-2006 à 10:35:50   

Reply

Marsh Posté le 18-04-2006 à 11:04:00    

BenchMark a écrit :

Bonjour, pour mon projet de fin d'année en programmation, je suis amené à réaliser un traîtement de texte. Cependant, je sèche sur la fermeture d'un fichier. Aucun type de fichier n'apparaît dans le champ ad hoc et aucun fichier ne s'enregistre. pourriez-vous me dire ce qu'il faut parametrer afin que ceci marche ?
 
Merci.


C'est quoi ton "champ had hoc"?
Pour fermer un fichier, c'est normalement "close(Monfichier);" où mon fichier est n'importe quel type de fichier(il ne s'agit pas d'héritier d'un type. On est là dans le pascal normal et non dans la programation objet "propre)
 
 Si tu utilise d'autre méthode de manipulation de fichier, ne soit pas timide  ;) dit nous ce que tu fait (quelle est le nom de la fonction où ton champ n'a pas de type)

Reply

Marsh Posté le 18-04-2006 à 11:07:04    

Je me suis manifestement trompé en rédigeant le post. Ce n'est pas la fermeture qui pose problème, mais l'enregistrement d'un fichier texte avec "SaveDialog". Désolé.

Reply

Marsh Posté le 18-04-2006 à 11:24:23    

Donc, comment paramètrer SaveDialog ?

Reply

Marsh Posté le 18-04-2006 à 14:00:30    

Oh, ben c'est très simple  :D  TSaveDialog n'offre strictement aucune fonctionalité pour enregistrer un fichier.
 
Ca se contente d'afficher une interface adapté pour choisir l'emplacement disque et le nom du fichier que l'on souhaiterais sauvegarder. Ce nom(complet) de fichier est donnée pas la propriétée FileName.
 
Donc, ton code doit ressembler à ça:

if MonDialogue.execute then //renvois vrai si l'utilisateur ne choisi pas d'annuler
  SAuvegarderFichier(MonDialogue.FileName);


Où la procedure SauvegarderFichier(NomFichier : string); est ecrites par tes soins.


Message édité par el zozo le 18-04-2006 à 14:12:04
Reply

Marsh Posté le 19-04-2006 à 21:37:41    

Salut ,  
 
Pas sur de voir ou est ce que tu seche ,
c'est l'utilisation du SaveDialog qui pose probleme ?
 
Enfin juste histoire de pas répondre a une question par une autre question ,  
un truc dans ce genre la :
 
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName); //  en suposant que ton éditeur est un Memo .
 
Voila si les proprietes du Savedialog  dans l'inspecteur d'objects sont renseignées comme il faut  
(pour  Filter  et FileName , Initialdir et DefalutExt aussi peut etre utile ) , ca doit fonctionner .
 


---------------

Reply

Marsh Posté le 24-04-2006 à 10:12:12    

Merci beaucoup !  
 
Il faut obligatoirement créer un fichier pour enregistrer un texte dans un Richedit ?

Reply

Marsh Posté le 24-04-2006 à 11:10:12    

BenchMark a écrit :

Merci beaucoup !  
 
Il faut obligatoirement créer un fichier pour enregistrer un texte dans un Richedit ?


J'ai un peu regarder rich edit (sur delphi 7). Apparemment, il ne sert qu'a afficher un fichier RTF existant.
Mais bon... Avec un peu de chance, c'est juste que j'ai pas regardé au bon endroit

Reply

Marsh Posté le 25-04-2006 à 10:00:18    

J'ai réussi à le faire marcher, voici ce que j'ai fais..
 

Citation :

// sauvegarde de fichiers
procedure TForm1.sbsaveClick(Sender: TObject);
begin
     savedialog1.Execute;
     if(savedialog1.FilterIndex =1) then
     begin
          richedit1.Lines.SaveToFile(savedialog1.filename + '.rtf');
     end;
     if(savedialog1.FilterIndex =2) then
     begin
          richedit1.Lines.SaveToFile(savedialog1.filename + '.doc');
     end;
end;


Message édité par BenchMark le 25-04-2006 à 10:01:01
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed