écriture dans un textfile [DELPHI] - Delphi/Pascal - Programmation
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 :
|
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
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]
Marsh Posté le 20-04-2002 à 14:11:09
merci bcp
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
Marsh Posté le 20-04-2002 à 14:13:48
Bah pour ce genre de choses l'aide de Borland est suffisante
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
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
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
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...
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 |
J'la reconnais C ma touche F1
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
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 ?
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 ?
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
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)
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
merci bcp
[jfdsdjhfuetppo]--Message édité par dafl le 27-04-2002 à 16:22:24--[/jfdsdjhfuetppo]
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