Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2480 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [DELPHI] écriture dans un textfile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DELPHI] écriture dans un textfile

n°128840
dafl
Posté le 20-04-2002 à 13:09:56  profilanswer
 

je veux créer un fichier bat donc en haut
j'ai mis :  
enc : textfile;
ensuite
filecreate('audio.bat';);
assignfile(enc,'audio.bat';);
 
et après quand je clique sur un bouton :
write(enc,'c:\lame\lame.exe';);
closefile(enc);
 
et là ça pose pb de type incompatiblej'ai essayé de mettre des chiffres dans un .bat ça pas de pb  
mais dès que je passe un textfile là j'ai des pb d'entrée sortie
j'ai voulu mettre la commande seek donc seek(nom du fichier, position) et rien de rien
 :cry:

mood
Publicité
Posté le 20-04-2002 à 13:09:56  profilanswer
 

n°128842
antp
Super Administrateur
Champion des excuses bidons
Posté le 20-04-2002 à 13:25:42  profilanswer
 

Il manque un truc:
l'ouverture du fichier
AssignFile fait un lien entre "enc" et le nom du fichier.
Pour l'ouvrir tu dois faire "Reset" (début du fichier), "Rewrite" (vider le fichier) ou "Append (fin du fichier)
Avant ça tu dois spécifier le mode d'ouverture. Par défaut c'est lecture/écriture:
FileMode :=  fmOpenReadWrite
Tu peux mettre fmOpenRead ou fmOpenWrite
 
Donc si tu veux d'office créer le fichier ou l'écraser:

Code :
  1. var
  2.   enc: TextFile;
  3. begin
  4.   AssignFile(enc,'audio.bat');
  5.   FileMode := fmOpenWrite; // pas obligatoire ici car un Rewrite sur un TextFile le met en mode Write automatiquement
  6.   Rewrite(enc);
  7.   Write(enc,'c:\lame\lame.exe');
  8.   CloseFile(enc);
  9. end;


 
si tu veux mettre un retour de ligne à la fin de la ligne écrite, il faut utiliser WriteLn au lieu de Write.
 
Je me demande comment ça marchait avec des chiffres :heink:
 
Si tu veux ajouter des trucs à la fin du fichier il faut faire Append(enc) au lieu de Rewrite(enc).

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°128850
dafl
Posté le 20-04-2002 à 14:11:09  profilanswer
 

merci bcp  :jap:  
même plus la peine du seek ça c'est cool
pour l'ouverture du fichier c'est bizarre sur mon bouquin de delphi 6 il en parle même pas  :crazy:

n°128852
antp
Super Administrateur
Champion des excuses bidons
Posté le 20-04-2002 à 14:13:48  profilanswer
 

Bah pour ce genre de choses l'aide de Borland est suffisante [:f1key]
;)

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°128856
dafl
Posté le 20-04-2002 à 14:35:20  profilanswer
 

j'ai deux bouquins celui de campuspress et celui de delphi 6 entreprise mais les exemples de l'aide je trouve pas ça super

n°128905
dafl
Posté le 20-04-2002 à 19:36:34  profilanswer
 

y'a pas autre chose que append ?
ça plante quand je fais ça :
  begin
     l:=0;
     AssignFile(enc,'c:\audio.bat';);
     rewrite(enc);
     begin
         For k:=0 to listview1.Items.Count do
            if listview1.Items[l].SubItems.Strings[1]='Mp3'
                then
                  begin
                  lame:=optionslame.Editemplacementlame.Text;
                  options:=optionslame.optionslameedit2.Text;
                  infile:=(listview1.items[l].subitems.Strings[0])+(listview1.Items.Item[0].Caption);
                  long:=length(infile);
                  outfile:=copy(infile,1,(long-3))+'mp3';
                  options:=options+' '+infile+' '+outfile;
                  AssignFile(enc,'c:\audio.bat';);
                  FileMode := fmOpenWrite;  
                  append(enc);
                  Writeln(enc,lame+' '+options);
                  CloseFile(enc);
                  end;
           If listview1.Items[l].SubItems.Strings[1]='Mp3 Vbr'
                then
                  begin
                  lame:=optionslame.Editemplacementlame.Text;
                  options:=optionslame.optionslameedit2.Text;
                  infile:=(listview1.items[l].subitems.Strings[0])+(listview1.Items.Item[0].Caption);
                  long:=length(infile);
                  outfile:=copy(infile,1,(long-3))+'mp3';
                  options:=options+' '+infile+' '+outfile;
                  edit1.Text:=listview1.Items[l].SubItems.Strings[1];
                  AssignFile(enc,'c:\audio.bat';);
                  FileMode := fmOpenWrite;
                  append(enc);
                  Writeln(enc,lame+' '+options);
                  CloseFile(enc);
                 end;
           If listview1.Items[l].SubItems.Strings[1]='Ogg Vorbis'
                then
                  Begin
                      ogg:=optionsoggvorbis.editemplacementoggvorbis.text;
                   options:=optionsoggvorbis.editoggoptions.Text;
                   infile:=(listview1.items[l].subitems.Strings[0])+(listview1.Items.Item[0].Caption);
                   long:=length(infile);
                   outfile:=copy(infile,1,(long-3))+'ogg';
                   options:=options+' '+infile+' '+outfile;
                   AssignFile(enc,'c:\audio.bat';);
                   FileMode := fmOpenWrite;
                   append(enc);
                   Writeln(enc,ogg+' '+options);
                   CloseFile(enc);
                  end;
     l:=l+1;
     end;
 
ça bloque sur append(enc); pourtant le fichier existe bien
le pb j'ai mis c:\audio.bat sinon il éparpillé un peu les fichiers bat un dans la racine l'autre dans le dernier rép ouvert

n°128907
antp
Super Administrateur
Champion des excuses bidons
Posté le 20-04-2002 à 19:42:27  profilanswer
 

Si tu veux qu'il aille toujours dans le dossier du programme tu n'as qu'à faire:
 
NomFichier := ExtractFilePath(Application.ExeName) + 'audio.bat';
 
Et là tu auras ton fichier toujours au bon endroit.
 
Pour le Append je vois pas trop le problème... C'est bizarre.
Essaie le mode ReadWrite au lieu de Write...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°128935
[SDF]Poire
Vive Grumly
Posté le 20-04-2002 à 21:59:29  profilanswer
 

antp a écrit a écrit :

Bah pour ce genre de choses l'aide de Borland est suffisante [:f1key]
;)  
 
 




J'la reconnais C ma touche F1  ;)  
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°128948
dafl
Posté le 20-04-2002 à 22:51:54  profilanswer
 

bon alors faut croire que c'est le rewrite du début qui fait déconner le reste

n°131632
dafl
Posté le 27-04-2002 à 13:24:40  profilanswer
 

bon j'ai tjs un pb vu que dès que je met rewrite(enc); ça plante existe t-il d'autre commande pour exécuter ça ?

mood
Publicité
Posté le 27-04-2002 à 13:24:40  profilanswer
 

n°131654
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-04-2002 à 15:19:17  profilanswer
 

Si tu crées le fichier puis fait Reset ça marche pas ?
Et si tu fais AssignFile, Rewrite, CloseFile, AssignFile, Reset ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°131660
dafl
Posté le 27-04-2002 à 15:39:21  profilanswer
 

antp a écrit a écrit :

Si tu crées le fichier puis fait Reset ça marche pas ?
Et si tu fais AssignFile, Rewrite, CloseFile, AssignFile, Reset ?  




j'ai fais un filecreate dans la creation de la form et le code du dessus donc dès que je mets rewrite ou reset ça me dis une erreur 103 donc fichier utilisé mais par quoi je sais pas du tous

n°131664
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-04-2002 à 15:51:42  profilanswer
 

Après le FileCreate tu fais bien un FileClose ? Parce que sinon c'est normal qu'il te dise que le fichier est utilisé...
(cf exemple de FileCreate dans l'aide de Delphi)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°131678
dafl
Posté le 27-04-2002 à 16:10:04  profilanswer
 

antp a écrit a écrit :

Après le FileCreate tu fais bien un FileClose ? Parce que sinon c'est normal qu'il te dise que le fichier est utilisé...
(cf exemple de FileCreate dans l'aide de Delphi)  




j'ai mis closefile(enc);
 
 
 
bon c'est bon j'ai mis en place le fileclose mais c'est bête closefile et fileclose c'est pas pareil  :crazy:  
merci bcp

 

[jfdsdjhfuetppo]--Message édité par dafl le 27-04-2002 à 16:22:24--[/jfdsdjhfuetppo]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [DELPHI] écriture dans un textfile

 

Sujets relatifs
[Delphi] Navigateur par défaut[Delphi] importer un fichier .xls dans une base de données
[Delphi] Comment déclarer une variable globale ?[ Delphi ] Creation d'un programme d'installation
[Pb SQL et Delphi] énnoncé d'une requête INSERT[Delphi] lancer un programme DOS ? [résolu]
[delphi]ca vous dit quelque chose ce message d'erreur?un bon site pour s'initier à delphi 5
[Delphi] Convertion d'un string en numériquecollaboration site web delphi, c++ builder et jbuilder
Plus de sujets relatifs à : [DELPHI] écriture dans un textfile


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR