Page de démarrage > lang > open 
 en de es it nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Précédent  Suivant  Éditer  Renommer  Annuler  Rafraîchir  Rechercher  Administration  
Documentation
Historique
 
Attention! La traduction de cette page n'est pas à jour.  Voir la version anglaise 
OPEN
Stream = OPEN FileName FOR [ READ | INPUT ] [ WRITE | OUTPUT ] [ CREATE | APPEND ] [ WATCH ]

Ouvre un fichier en lecture, écriture, création ou ajout de données. Le fichier doit exister, sauf si le mot clé CREATE est spécifié.

Si l'ouverture du fichier est réussie, un objet flux est retourné à la variable de flux Stream.

Par défaut, les flux sont tamponnés.

Si vous voulez disposer d'un flux non tamponné flux,vous devez utiliser explicitement les mots clés READ ou WRITE.

A l'iverse des autres dialectes Basic, Gambas n'efface jamais un fichier ouvert par le mot clé WRITE par exemple. Aussi si le nouveau contenu est plus petit que l'ancien, un résidu de l'ancienne version demeurera à la fin du nouveau fichier. Pour éviter cela, ouvrez le fichier en incluant le mot clé CREATE.

Erreurs

MessageDescription
Access forbidden (43) L'accès au fichier demandé n'est pas autorisé, ou la permission de recherche est refusée pour l'un des répertoires dans le préfixe de chemin ou dans le chemin, ou le fichier n'existe pas encore et les droits d'accès au répertoire parent ne sont pas établis.

File is a directory (46) FileName se réfère à un répertoire. utilisez la fonction Dir à la place!
File or directory does not exist (45) FileName n'existe pas, ou un composant répertoire du chemin n'existe pas ou est un lien symbolique rompu.
Out of memory (1) La capacité de mémoire système est dépassée.
Device is full (37) FileName devait être créé mais le périphérique contenant FileName n'a pas de place pour le nouveau fichier.
Not a directory... (49) Un composant utilisé comme répertoire dans FileName n'est pas, en fait, un répertoire.
System error... (42) Autres erreus système possibles:
  • Liens symboliques trop nombreux lors de la résolution de FileName.
  • Le process a déjà atteint le nombre maximum de fichiers ouverts .
  • La limite maximale de nombre de fichiers ouverts a été atteinte par le système.
  • FileName se réfère a un fichier périférique special et aucun périférique correspondant n'existe.
  • Le nom de fichier correspond à un pipe nommé et aucun process n'a ouvert le fichier en lecture.
  • FileName se réfère à un fichier sur un système en lecture seule et un accès en écriture a été requis.
  • FileName se réfère à une image éxécutable en cours d'éxécution et un accès en écriture a été requis.

Exemple

' Affiche le contenu d'un fichier texte à l'écran

DIM hFile AS File
DIM sLine AS String

hFile = OPEN "/etc/passwd" FOR INPUT

WHILE NOT Eof(hFile)
  LINE INPUT #hFile, sLine
  PRINT sLine
WEND

' Surveillance d'un port série

DIM hFile AS File

hFile = OPEN "/dev/ttyS0" FOR READ WRITE WATCH

...

PUBLIC SUB File_Read()

  DIM iByte AS Byte

  READ #hFile, iByte
  PRINT "Got one byte: "; iByte

END

' Lecture de données depuis un fichier BMP, sait utiliser le format little-endian :

DIM hFile AS File
DIM iData AS Integer

hFile = OPEN "image.bmp" FOR INPUT
hFile.ByteOrder = gb.LittleEndian
...
READ #hFile, iData

Voir aussi

Flux & fonctions d'Entrée/Sortie, Fonctions associées aux fichiers et répertoires, Chemins de Fichiers & Répertoires, Stream