Bonjour,
On me demande des tâches à réaliser sur Scilab et j'ai un peu de mal.
1) Je dois lire un texte d'un endroit et l'écrire avec scilab dans un fichier dont on me donne le nom
2) Puis une fois que j'ai fait ca, reprendre le fichier et écrire dans la console des lignes du fichier
Je dispose des spécifications suivantes :
J'ai du mal avec les options entre crochets, savoir quand les utiliser ou non. En fait ce qui me perturbe c'est que ce sont des fonctions assez complexes avec plein d'arguments, dont certains qui sont des arguments par défaut.[unit [,err]]=file('open', file-name [,status] [,access [,recl]] [,format])
allows to open a file with specified properties and to get the associated unit number unit.
file-name :
string, file name of the file to be opened
status :
string, the status of the file to be opened
"new"
file must not exist new file (default)
"old"
file must already exists.
"unknown"
unknown status
"scratch"
file is to be deleted at end of session
file(action,unit)
allows to close the file , or move the current file pointer. action : is one of the following strings :
"close": closes the file(s) given by the logical unit descriptors given in units;
"rewind": puts the pointer at beginning of file;
"backspace": puts the pointer at beginning of last record;
"last": puts the pointer after last record.
[x] = read(file-desc,m,n,[format])
reads row after row the mxn matrix x (n=1 for character chain) in the file file-desc (string or integer). Each row of the matrix x begin in a new line of file-desc file. Depending on format, a given row of the x matrix may be read from more than one line of file-desc file.
write(file-desc,a,[format])
writes row-by-row a real matrix or a column vector of character strings in a for- matted file. Each row of the a argument begin in a new line of file-desc file. Depending on format a given row of thea argument may be written in more than one line of file-desc file.
Je vous donne ce que une brève ébauche de ce que j'ai tenté pour la 1)
En effet je peux arrêter le programme quand je veux pour ca que je lance une boucle infinie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [unit] = file('open',"nomdemonfichier" [txt]) while (True) write("nomdemonfichier",blablabla (texte que l'on me donne),[txt]) end
Pouvez-vous juste m'aider concernant l'utilisation de la fonction unit (si c'est bien une fonction) et write si je l'utilise correctement ?
Je vous remercie beaucoup !
EDIT :
Je suis allé voir dans la doc et du coup ca m'a l'air d'être un nombre associé à un fichier, et on utilise le nombre une fois que celui-ci est associé pour utiliser les autres fonctions.
La doc propose même une fonction toute faite donc je l'ai entré dans ma console scilab
Et ca me crée un fichier foo où ca écrit dedans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 u=file("open",TMPDIR+"/foo","unknown") for k=1:4 a=rand(1,4) write(u,a) end file("rewind",u) x=read(u,2,4) file("close",u) // u1=file("open",TMPDIR+"/foo","unknown") u2=mopen(TMPDIR+"/foo1","wb") [units,typs,nams]=file() file("close",u1); mclose(u2);
Du coup parfait vu que dans mon exercice je veux chercher à écrire dans un fichier, sauf que j'utilise la même commande à savoir
J'obtiens un chiffre pour u et je fais write(u,a) mais là problème : mon fichier exemple se crée mais ca n'écrit pas dedans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part u=file("open","exemple")
Avez-vous une idée de où je bloque ? Je vous remercie par avance.
Partager