[DELPHI] écriture dans un textfile

écriture dans un textfile [DELPHI] - Delphi/Pascal - Programmation

Marsh Posté le 20-04-2002 à 13:09:56    

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:

Reply

Marsh Posté le 20-04-2002 à 13:09:56   

Reply

Marsh Posté le 20-04-2002 à 13:25:42    

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
Reply

Marsh Posté le 20-04-2002 à 14:11:09    

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:

Reply

Marsh Posté le 20-04-2002 à 14:13:48    

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
Reply

Marsh Posté le 20-04-2002 à 14:35:20    

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

Reply

Marsh Posté le 20-04-2002 à 19:36:34    

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

Reply

Marsh Posté le 20-04-2002 à 19:42:27    

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
Reply

Marsh Posté le 20-04-2002 à 21:59:29    

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:
Reply

Marsh Posté le 20-04-2002 à 22:51:54    

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

Reply

Marsh Posté le 27-04-2002 à 13:24:40    

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 ?

Reply

Marsh Posté le 27-04-2002 à 13:24:40   

Reply

Marsh Posté le 27-04-2002 à 15:19:17    

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
Reply

Marsh Posté le 27-04-2002 à 15:39:21    

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

Reply

Marsh Posté le 27-04-2002 à 15:51:42    

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
Reply

Marsh Posté le 27-04-2002 à 16:10:04    

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]

Reply

Sujets relatifs:

Leave a Replay

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