@FILEOPEN[nom de fichier,r[ead]|w[rite]|a[ppend][,b|t]]  : Ouvre le fichier dans le mode spécifié et renvoie le descripteur de fichier comme un entier. Le troisième paramètre facultatif contrôle si le fichier est ouvert en mode binaire ou texte. Le mode texte (par défaut) doit être utilisé pour lire du texte en utilisant @FILEREEAD sans longueur, et d'écrire du texte en utilisant @FILEWRITE. Le mode binaire doit être utilisé pour lire des données binaires avec @FILEREEAD avec une longueur, et pour écrire des données binaires avec @FILEWRITEB. Renvoie -1 si le fichier ne peut pas être ouvert.

 

Nom de fichier doit être entre guillemets s’il contient des espaces ou des caractères spéciaux. Pour lire à partir de l'entrée standard, utilisez Contre: pour le nom de fichier.

 

Pour ouvrir un fichier en lecture et en écriture, ouvrez-le en annexe mode, puis utilisez @FILESEEK pour se positionner au début du fichier (ou à tout autre emplacement souhaité) avant d'effectuer des opérations supplémentaires.

 

@FILEOPEN peut également ouvrir des canaux nommés. Le nom du canal doit commencer par \\.\tuyau\. @FILEOPEN essaie d'abord d'ouvrir un canal existant ; si cela échoue, il essaie de créer un nouveau canal. Les canaux sont ouverts en mode blocage, accès duplex, mode lecture d'octets et sont héritables. @FILEOPEN ne reviendra pas tant qu'un autre processus ne se connectera pas au canal. Pour plus d'informations sur les canaux nommés, consultez votre documentation Windows.

 

@FILEOPEN peut ouvrir des flux de fichiers sur des lecteurs NTFS si le nom du flux est spécifié. Voir Flux de fichiers NTFS pour plus de détails sur les flux de fichiers.

 

Vous devez référencer le fichier exclusivement à l'aide du retour descripteur de fichier, et vous il faut fermer le dossier utilisant l' descripteur de fichier. Ceci est particulièrement important lorsque vous déboguez un programme batch qui utilise @FILEOPEN. Si vous pensez que les descripteurs de fichiers ont été ouverts et non fermés, vous devez redémarrer TCC.

 

Exemples :

 

set h=%@fileopen["d:\path\myfile.txt",write]

echo écrivant %@filewrite[%h, ceci est un test] octets

echo handle de fermeture #%h : %@fileclose[%h]

 

Voir également les fonctions associées basées sur les handles :

 

@FILECLOSEFermer un handle de fichier
@FILEREEADLire la ligne suivante à partir d'un descripteur de fichier
@FILESEEKDéplacer un pointeur de handle de fichier
@FILESEEKLDéplacer un pointeur de descripteur de fichier vers une ligne spécifiée
@FILEWRITEÉcrire la ligne suivante dans un descripteur de fichier
@FILEWRITEBÉcrire des données dans un descripteur de fichier
@TRONQUERTronque le fichier à la position actuelle du pointeur de descripteur de fichier.