Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ÉCRIRE DANS UN FICHIER TEXTE (*.TXT)


Information sur la source

Catégorie :Fichier / Disque Niveau : Débutant Date de création : 18/04/2002 Date de mise à jour : 18/04/2002 22:15:23 Vu : 22 841

Note :
5,38 / 10 - par 8 personnes
5,38 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

Vous vous demmandez comment écrire dans un fichier Texte sans passer par un memo ou un Richedit ?

La réponse est ici :
 

Source

  • procedure X(Sender: TObject);
  • var
  • //on crée une variable Textfile
  • fichier: textfile;
  • begin
  • assignfile(fichier ,'nom_du_fichier.txt');
  • Reset(fichier); //Si vous voulez réouvrir un fichier sans effacer le contenu, ou bien
  • //Rewrite(fichier); si vous voulez ecraser le fichier
  • Write(fichier,'ce kon veu écrire'); //ajoute un mot dans le fichier
  • WriteLn(fichier,'ce kon veu encore écrire'); //ajoute une ligne au fichier
  • closefile(fichier); //ferme le fichier
  • end;
procedure X(Sender: TObject);
var
//on crée une variable Textfile
 fichier: textfile;
begin
assignfile(fichier ,'nom_du_fichier.txt');
Reset(fichier); //Si vous voulez réouvrir un fichier sans effacer le contenu, ou bien 
                           //Rewrite(fichier); si vous voulez ecraser le fichier

Write(fichier,'ce kon veu écrire'); //ajoute un mot dans le fichier
WriteLn(fichier,'ce kon veu encore  écrire'); //ajoute une ligne au fichier

closefile(fichier); //ferme le fichier
end; 

Conclusion

Vous pourrez peut être remarquer un étrange ressemblance avec PHP.
Zicklon,
zicklon@free.fr
 

Commentaires et avis

signaler à un administrateur
Commentaire de fabiin le 18/04/2002 22:50:32

et pour lire:
read()
readln()
:)

signaler à un administrateur
Commentaire de Nono40 le 18/04/2002 23:34:03

En plus de Reset() ( ouverture en lecture ) et Rewrite() ( Ouverture en écriture avec effacement/création du fichier ) il est aussi possible d'utiliser Append() qui ouvre le fichier en écriture sans effacer le fichier et donc d'ajouter du texte à la fin du fichier.

Il faut aussi ajouter que les fichiers textes par rapports aux fichiers binaires ont les nuances suivantes :
Après Reset() vous ne pouvez utiliser que Read et ReadLn ( et non write... ) car le fichier est ouvert en lecture seule.
Après ReWrite() et Append() vous ne pouvez utilisez que Write et WriteLn car le fichier est ouvert en écriture seule.

signaler à un administrateur
Commentaire de Amadeus le 19/04/2002 09:07:56

On peut faire également un Flush :
Lorsqu'un fichier texte a été ouvert en écriture par Rewrite ou Append, un appel à Flush vide sa mémoire tampon. Ceci garantit que tous les caractères écrits dans le fichier sont réellement écrits sur disque.

Il faudrait également encadré dans un TRY FINALLY le code et mettre dans le finally : closefile(fichier), comme cela si une erreur ce produit on est sure que le fichier sera fermé et libéré.

signaler à un administrateur
Commentaire de hotcold le 10/11/2003 23:17:43

Voilà un code qui me sers bien. Cependant il y a une petite chose qui me chagrinne dans le résultat obtenu. Comment on peut faire pour que à chaque "Write" on revienne à la ligne. Pour le moment tout est ecrit à la suite. Merci de bien vouloir m'aider...

signaler à un administrateur
Commentaire de manu1506 le 14/11/2003 17:10:43

Par défaut, un fichier est ouvert en lecture/écriture. Ce qui provoque une une erreur si le fichier porte l'attribut ReadOnly.
Remède simple : avant d'ouvrir le fichier, affecter une nouvelle valeur à FileMode, une variable globale de l'unité System. Voici quelques exemples :
FileMode:=0 => Les fichiers seront ouverts en lecture seule
FileMode:=1 => Les fichiers seront ouverts en écriture seule
FileMode:=2 => Valeur par défaut ; Les fichiers seront ouverts en
                       lecture/écriture

signaler à un administrateur
Commentaire de slachz le 15/04/2004 18:04:06

woo ça fait longtemps mais bon -> pour hotcold

en fait comme l'a expliqué zicklon
write() ecrit dans la ligne en cours et
writeLn() ecrit ds la ligne en cour puis saute une ligne.

en gros si tu ve sauter une ligne ça fait un truc du genre ça :

writeLn(fichier, 'premiere Ligne');
writeLn(fichier, '');
write(fichier, 'troisième ligne');

j'éspère que je répond à ta question ^^

signaler à un administrateur
Commentaire de zulot le 23/05/2004 16:32:37

Et comment fait on pour lire tout un fichier texte d'un coup pour le rentrer dans une seule variable?
Car avec read j'arrive a lire qu'une ligne.

signaler à un administrateur
Commentaire de Katot le 27/07/2004 12:27:38

slt
en faite je comprend pas mais g essayer tt les assignfiles ke g trouver (differentes source de ce site) mais rien y fait , g toujours des erreur , sois 'fichier introuvable' sois 'erreur E/S 104'
donc si kelkun a 1 reponse a me fournir je suis tout ouï

signaler à un administrateur
Commentaire de zulot le 26/08/2004 14:12:57

C'est clair que cette source n'est absolument pas complete.
Peut etre la remettre a jour se serait bien, avec toute les possibilité et impossibilité.
Parceque je me souviens la 1ere fois j'ai lu ca des je voulais faire un truc ca marchais pas, maintenant que j'arrive a gerer tout dans un fichier je m'apercoit que cette source n'aide pas trop les debutants.

signaler à un administrateur
Commentaire de cedflow le 29/10/2004 13:13:27

comment peut faire pour ne lire que les 5 premiers caractères d'une ligne par exemple

signaler à un administrateur
Commentaire de mystercoco le 13/05/2005 16:13:28

Pour les 5 premiers caractères, tu fais :
readln(fichier,ligne); // ou read si tu veux resté sur la mêm ligne de lecture
ligne:=copy(ligne,0,5); // avec copy(ligne,premier caractère copié,nombre de caractères);
// ligne correspond au 5 premiers caractère de la ligne.

signaler à un administrateur
Commentaire de darknessshade2003 le 25/09/2005 18:55:45

Comment rechercher du texte et le supprimer ?

signaler à un administrateur
Commentaire de mystercoco le 08/10/2005 19:48:52

Il existe une fonction : pos(souschaine,chaine) qui te donne la position du premier caractère de la sous-chaine dans la chaine.
Pour supprimer la ss-chaine il suffit de la localiser avec pos et de copier la partie avant concaténé à la partie après la sous chaine (utilisation possible de la fonction copy).

signaler à un administrateur
Commentaire de dalila2006 le 01/06/2006 13:48:08

si qqn connait la procedure exacte pr l'écriture ds un fichier texte  ,donnez la please .c urgent merci

signaler à un administrateur
Commentaire de totalsigne le 30/04/2007 00:19:14

pe ton changer la fonte des mots dans un fichier texte?

signaler à un administrateur
Commentaire de totalsigne le 02/05/2007 21:37:07

pe ton ecrire dans un fichier texte avec differente fontes

signaler à un administrateur
Commentaire de manu1506 le 06/06/2007 17:04:13

"pe ton ecrire dans un fichier texte avec differente fontes "

Non : un fichier texte ne contient que du texte : il ne contient aucune info sur la fonte...à moins de l'écrire comme un fichier ini et d'y mémoriser le nom de la fonte. Mais tu devras créer un programme utilisant cette information.

signaler à un administrateur
Commentaire de artosane le 13/02/2008 19:10:18

Il est aussi souhaitable de gérer les erreurs, comme suit :

(lors du reset ou rewrite ) :

{$I-}
reset(F);       // initialisation du fichier à la lecture
{$I+}
If (IOresult = 0) then  // repérage des erreurs
begin
    etc......

Grosso modo, les I- et I+ encadrent la zone à risque. Il affecte à IOresult le numéro de l'erreur (exception) levée.
Si IOresult = 0, alors il n'y a pas d'erreurs. Et ca vous évite tous les plantages lourdeaux et évitables.
Vous trouverez facilement les correspondances code/erreurs sur le web, pour traiter les erreurs indépendamment.
Voilou !

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.