Euphoria - Fichiers E / S

En utilisant le langage de programmation Euphoria, vous pouvez écrire des programmes qui lisent et modifient les données de fichiers sur votre lecteur de disquette ou disque dur, ou créer de nouveaux fichiers comme forme de sortie. Vous pouvez même accéder aux périphériques de votre ordinateur tels que l'imprimante et le modem.

Ce chapitre décrit toutes les fonctions d'E / S de base disponibles dans Euphoria. Pour plus d'informations sur plus de fonctions, reportez-vous à la documentation standard d'Euphoria.

Affichage à l'écran

Le moyen le plus simple de produire une sortie consiste à utiliser l' instruction put () dans laquelle vous pouvez transmettre n'importe quelle chaîne à afficher à l'écran. Il existe une autre méthode printf () qui peut également être utilisée au cas où vous auriez à formater une chaîne en utilisant des valeurs dynamiques.

Ces méthodes convertissent les expressions que vous leur transmettez en une chaîne et écrivent le résultat dans la sortie standard comme suit -

#!/home/euphoria-4.0b2/bin/eui
 
puts(1, "Euphoria is really a great language, isn't it?" )

Cela produit le résultat suivant sur votre écran standard -

Euphoria is really a great language, isn't it?

Ouverture et fermeture de fichiers

Euphoria fournit les méthodes de base nécessaires pour manipuler les fichiers par défaut. Vous pouvez effectuer la plupart de la manipulation de fichiers en utilisant les méthodes suivantes -

  • open()
  • close()
  • printf()
  • gets()
  • getc()

La méthode ouverte

Avant de pouvoir lire ou écrire un fichier, vous devez l'ouvrir en utilisant la méthode open () intégrée d'Euphoria . Cette fonction crée un descripteur de fichier qui est utilisé pour appeler d'autres méthodes de support qui lui sont associées.

Syntaxe

integer file_num = open(file_name, access_mode)

La méthode ci-dessus renvoie -1 en cas d'erreur lors de l'ouverture du nom de fichier donné. Voici les paramètres -

  • file_name - L'argument nom_fichier est une valeur de chaîne contenant le nom du fichier auquel vous souhaitez accéder.

  • access_mode- Le access_mode détermine le mode dans lequel le fichier doit être ouvert. Par exemple, lire, écrire, ajouter, etc. Une liste complète des valeurs possibles pour les modes d'ouverture de fichier est donnée dans le tableau suivant -

S. Non Modes et description
1

r

Ouvre un fichier texte pour lecture uniquement. Le pointeur de fichier est placé au début du fichier.

2

rb

Ouvre un fichier en lecture uniquement au format binaire. Le pointeur de fichier est placé au début du fichier.

3

w

Ouvre un fichier texte pour l'écriture uniquement. Remplace le fichier si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier à écrire.

4

wb

Ouvre un fichier pour l'écriture uniquement au format binaire. Remplace le fichier si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier à écrire.

5

u

Ouvre un fichier en lecture et en écriture. Le pointeur de fichier est défini au début du fichier.

6

ub

Ouvre un fichier pour la lecture et l'écriture au format binaire. Le pointeur de fichier est placé au début du fichier.

sept

a

Ouvre un fichier à ajouter. Le pointeur de fichier est à la fin du fichier si le fichier existe (mode ajout). Si le fichier n'existe pas, il crée un nouveau fichier à écrire.

8

ab

Ouvre un fichier à ajouter au format binaire. Le pointeur de fichier est à la fin du fichier si le fichier existe (mode ajout). Si le fichier n'existe pas, il crée un nouveau fichier à écrire.

Exemple

L'exemple suivant crée un nouveau fichier texte dans le répertoire actuel de votre système Linux -

#!/home/euphoria-4.0b2/bin/eui

integer file_num
constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile,txt", "w")

if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

Si le fichier s'ouvre avec succès, alors "myfile.txt" est créé dans votre répertoire actuel et produit le résultat suivant -

File opend successfully

La méthode close ()

La méthode close () vide toutes les informations non écrites et ferme le fichier, après quoi aucune lecture ou écriture ne peut plus être effectuée sur le fichier.

Euphoria ferme automatiquement un fichier lorsque l'objet de référence d'un fichier est réaffecté à un autre fichier. Il est recommandé d'utiliser la méthode close () pour fermer un fichier.

Syntaxe

close( file_num );

Ici, le descripteur de fichier reçu lors de l'ouverture d'un fichier est passé en paramètre.

Exemple

L'exemple suivant crée un fichier comme ci-dessus, puis le ferme avant d'exister le programme -

#!/home/euphoria-4.0b2/bin/eui

integer file_num
constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile.txt", "w")

if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

if file_num = -1 then
   puts(ERROR, "No need to close the file\n")
else
   close( file_num )
   puts(STDOUT, "File closed successfully\n")
end if

Cela produit le résultat suivant -

File opend successfully
File closed successfully

Lecture et écriture de fichiers

Euphoria fournit un ensemble de méthodes d'accès pour nous faciliter la vie lors de la lecture ou de l'écriture d'un fichier en mode texte ou en mode binaire. Voyons comment utiliser les méthodes printf () et gets () pour lire et écrire des fichiers.

La méthode printf ()

La méthode printf () écrit n'importe quelle chaîne dans un fichier ouvert.

Syntaxe

printf(fn, st, x)

Voici les paramètres -

  • fn - Descripteur de fichier reçu de la méthode open ().

  • st - Chaîne de format dans laquelle le décimal ou l'atome est formaté à l'aide de% d et la chaîne ou la séquence est formatée à l'aide de% s.

  • x- Si x est une séquence, alors les spécificateurs de format de st sont mis en correspondance avec les éléments correspondants de x. Si x est un atome, alors st contient normalement un seul spécificateur de format et il est appliqué à x. Pourtant; si st contient plusieurs spécificateurs de format, chacun est appliqué à la même valeur x.

Exemple

L'exemple suivant ouvre un fichier et écrit le nom et l'âge d'une personne dans ce fichier -

#!/home/euphoria-4.0b2/bin/eui

integer file_num
constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile.txt", "w")

if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

printf(file_num, "My name is %s and age is %d\n", {"Zara", 8})

if file_num = -1 then
   puts(ERROR, "No need to close the file\n")
else
   close( file_num )
   puts(STDOUT, "File closed successfully\n")
end if

L'exemple ci-dessus crée le fichier myfile.txt . Est écrit le contenu donné dans ce fichier et se ferme finalement. Si vous ouvrez ce fichier, il aura le contenu suivant -

My name is Zara and age is 8

La méthode gets ()

La méthode gets () lit une chaîne à partir d'un fichier ouvert.

Syntaxe

gets(file_num)

Ici, le paramètre passé est la description du fichier renvoyée par la méthode opend () . Cette méthode démarre la lecture à partir du début du fichier ligne par ligne. Les caractères ont des valeurs de 0 à 255. L'atome -1 est renvoyé à la fin du fichier.

Exemple

Prenons un fichier myfile.txt qui est déjà créé.

#!/home/euphoria-4.0b2/bin/eui

integer file_num
object line

constant ERROR = 2
constant STDOUT = 1

file_num = open("myfile.txt", "r")
if file_num = -1 then
   puts(ERROR, "couldn't open myfile\n")
else
   puts(STDOUT, "File opend successfully\n")
end if

line = gets(file_num)
printf( STDOUT, "Read content : %s\n", {line})

if file_num = -1 then
   puts(ERROR, "No need to close the file\n")
else
   close( file_num )
   puts(STDOUT, "File closed successfully\n")
end if

Cela produit le résultat suivant -

File opend successfully
Read content : My name is Zara and age is 8

File closed successfully

Euphoria fournit une liste de nombreuses méthodes qui vous aident à manipuler les fichiers. Ces méthodes sont répertoriées dans les routines de la bibliothèque Euphoria .