Ce chapitre décrit les fichiers simples, de texte ou binaires
et comment les créer et les utiliser. Comme Php est largement utilisé
pour gérer des bases de données, il reconnait une quantité de formats,
mais cela dépasse l'objectif de ce tutoriel, SQL et autres librairies
d'accès aux données peuvent être étudiés dans le manuel Php.
Scriptol dispose d'un type scalaire particulier pour les fichiers:
file.
Comme tous les objets scriptol, il dispose de méthodes propres.
Création
Un fichier est créé quand il est ouvert en écriture. Le mode d'accès d'un
fichier est le second paramètre de la méthode "open".
file monfichier `
crée une instance de la classe virtuelle file
monfichier.open("nom", "mode") `
ouvre le fichier. error ? print "non ouvert" `
test d'erreur.
Le nom est soit un nom de fichier local ou une URL commençant par ftp://
ou http:// (pour Scriptol Php seulement)
Les modes d'accès sont les suivants
"r"
"w"
"r+"
"a"
"a+"
|
lecture, à partir du début.
écriture à partir du début.
lecture ou écriture au du début du fichier.
écriture par ajout à la fin du fichier.
lecture à la position courant, ou écriture à la fin. |
Une fois le fichier ouvert, la position de lecture est soit le début
du fichier, ou une position donnée par la méthode "seek".
Exemple:
monfichier.seek(250)
...lecture ou écriture en sautant les 250 premier octets.
Seek ne fonctionne qu'avec un fichier local.
Pour tester si un fichier est trouvé ou accessible, on utilise le drapeau
caché qui est disponible par la structure de contrôle "error".
Lecture
Un fichier peut être lu ligne par ligne, ou par blocs d'octets.
Dans le premier cas, la méthode readLine() est utilisée, sinon, on utilise
la méthode read avec la taille du bloc en paramètre.
Exemple: text t = readLine()
` lecture d'une ligne de texte.
Le code de fin de ligne est inclus dans le texte et peut être supprimé
par la méthode de texte rTrim().
Autre exemple:
text t = read(1000) ` lecture de 1000 octets
Ecriture
La méthode write place le contenu d'une variable de texte dans un
fichier Une fois le fichier ouvert soit avec le mode "w" ou "a", et donc
enregistré soit à partir de zéro ou à la fin de son contenu actuel, chaque
nouvel appel à write ajoute un nouveau texte à la fin.
La gestion de fichier, fonctions relatives et méthodes
Fonctions utiles à la gestion de fichier |
file fopen(text, text) text rTrim(text) boolean file_exists(text) number filesize(text) |
Crée ou ouvre un fichier selon le
nom et le mode
Supprime le code de fin de ligne après lecture.
Retourne true si le fichier existe, false sinon.
Retourne la taille du fichier dont le nom est donné. |
Les méthodes de la classe virtuelle
file |
void open(text, text) void close() text read(int) int write(text) text readLine() int seek(int) boolean file_eof() |
Crée ou ouvre un fichier selon
le nom et le mode.
Ferme le fichier.
Lit le fichier
Ajoute un texte dans le fichier, selon le mode.
Lit la ligne suivante dans un fichier de texte.
Pointe à la position donnée dans un fichier.
Retourne true (vrai) quand la fin de fichier est atteinte. |
Exemple simple d'écriture séquentielle
dans un fichier. |
text
nomfic = "monfic" `
nom du fichier file sortie `
nom de l'objet virtuel
sortie.open(nomfic, "w") `
ouvert en écriture error ? die("impossible d'ouvrir
" + nomfic)
for text ligne
in maliste
` un tableau quelconque
sortie.write(ligne + "\n") `
enregistrer l'élément suivant /for
sortie.close() `
fermer le fichier |
Exercices |
1) Ecrire la lecture d'un fichier de texte nommé "monfic.txt",
et afficher le contenu.
Réponse
|
|