Instruccion OPEN

Objetivo:

Establecer entrada/salida (entrada - salida) a un archivo o dispositivo.

Sintaxis:

OPEN mode,[#]file number,filename[,reclen]
OPEN filename [FOR mode][ACCESS access][lock] AS [#]file number [LEN=reclen]

Comentarios:

filename es el nombre del archivo.

modo (primera sintaxis) es una expresi�n de cadena con uno de los caracteres siguientes:

Expresi�n Especifica Specifies
O Modo de salida secuencial Sequential output mode
I Modo de entrada secuencial Sequential input mode
R Modo de entrada/salida aleatorio Random input/output mode
A Posici�n a final de archivo Position to end of file

mode (segunda sintaxis) determina la colocaci�n de inicial dentro del archivo, y la acci�n para ser tomada si el archivo no existe. Si FOR la cl�usula de modo es omitido, la posici�n inicial es a principios del archivo. Si el archivo no es encontrado, uno es creado. Este es el modo de entrada - salida arbitrario. Es decir los archivos pueden ser le�dos o escritos en cualquier posici�n dentro del archivo. Los modos v�lidos y las acciones tomadas son como sigue:

INPUT Posici�n al principio del archivo."File not found" error es dado si el archivo no existe.
OUTPUT Posici�n al principio del archivo. Si el archivo no existe, uno es creado.
APPEND Posici�n al final del archivo. Si el archivo no existe, uno es creado.
RANDOM Especifica la entrada arbitraria o el modo de salida.

modo debe ser una cuerda constante. No encierre mode en dobles comillas. access puede ser uno de lo siguiente:

READ
WRITE
READ WRITE 

file number es un n�mero entre 1 y el n�mero m�ximo de archivos permitidos. El n�mero asocia un parachoques de entrada - salida con un archivo de disco o dispositivo. Esta asociaci�n existe hasta que una declaraci�n de n�mero de archivo CLOSE O CLOSE sea ejecutada.

reclen es una expresi�n de n�mero entero dentro de la variedad de 1-32767 que pone la longitud de registro ser usada para archivos arbitrarios. De ser omitido, las faltas de longitud de registro a archivos de 128 bytes.

Cuando reclen es usado para archivos secuenciales, la falta es 128 bytes, y reclen no puede exceder el valor especificado por el interruptor /s.

Un archivo de disco debe ser abierto antes de que cualquier operaci�n de entrada - salida de disco puede ser realizada en aquel archivo. OPEN asigna un parachoques para la entrada - salida al archivo y determina el modo de acceso que es usado con el parachoques.

M�s de un archivo puede ser abierto para entrada o acceso aleatorio en un tiempo con n�meros de archivo diferentes. Por ejemplo, las declaraciones siguientes son permitidas:

OPEN "B:TEMP" FOR INPUT AS #1
OPEN "B:TEMP" FOR INPUT AS #2

Sin embargo, un archivo puede ser abierto s�lo una vez para la salida o a�adir. Por ejemplo, las declaraciones siguientes son ilegales:

OPEN "TEMP" FOR OUTPUT AS #1
OPEN "TEMP" FOR OUTPUT AS #2

Note

Est� seguro para cerrar todos los archivos antes de quitar disquetes de las unidades de disco  (ver CLOSE RESET).


Un dispositivo puede ser uno de lo siguiente:

A:, B:, C: ... Unidad de disco
KYBD: El teclado (intrada solamente)
SCRN: Pantalla (salida solamente)
LPT1: Impresora en l�nea 1
LPT2: Impresora en l�nea 2
LPT3: Impresora en l�nea 3
COM1: Comunicaciones de RS-232 1
COM2: Comunicaciones de RS-232 2

Para cada dispositivo, los modos ABIERTOS siguientes son permitidos:

KYBD: Entrada solamente
SCRN: Salida solamente
LPT1: Salida solamente
LPT2: Salida solamente
LPT3: Salida S�lo
COM1: Entrada, Salida, o Arbitrario solamente
COM2: Entrada, Salida, o Arbitrario solamente

Los archivos de disco permiten todos los modos.

Cuando un archivo de disco es abierto para APPEND, la posici�n es al principio al final de archivo, y el n�mero de registro es puesto al �ltimo registro del archivo (LOF(x)/128). PRINT, WRITE, or PUT entonces ampl�a el archivo. El programa puede colocar en otra parte en el archivo con una instruccion GET. Si este es hecho, el modo es cambiado a arbitrario y los movimientos de posici�n al registro indicado.

Una vez que la posici�n es movida a partir del final del archivo, los archivos adicionales pueden ser a�adidos al archivo ejecutando GET #x, LOF(x)/reclen. Este coloca la aguja de archivo al final de archivo en la preparaci�n para a�adir.

Cualquier valor entrado fuera de las variedades dadas causa error "Illegal function call". Los archivos no son abiertos.

Si el archivo es abierto como INPUT tentativas de escribir al archivo causan errores "Bad file mode".

Si el archivo es abierto como OUTPUT, tentativas de leer el archivo causan errores "Bad file mode".

La apertura de un archivo para OUTPUT or APPEND falla, si el archivo est� abierto ya en alg�n modo.

Ya que es posible referirse al mismo archivo en un subdirectorio v�a caminos diferentes, es casi imposible para GW-BASIC saber que esto es el mismo archivo simplemente mirando el camino. Por esta raz�n, GW-BASIC no le deja abrir el archivo para OUTPUT or APPEND si esto est� en el mismo disco, aun si el camino es diferente. Por ejemplo si mary es su directorio de trabajo, las declaraciones siguientes todos se refieren al mismo archivo:

OPEN "REPORT"
OPEN "\SALES\MARY\REPORT"
OPEN "..\MARY\REPORT"
OPEN "..\..\MARY\REPORT"

En cualquier tiempo, es posible tener un nombre del archivo de disquete particular abierto bajo m�s de un n�mero de archivo. Cada n�mero de archivo tiene un parachoques diferente, entonces varios archivos del mismo archivo pueden ser guardados en la memoria para el acceso r�pido. Este permite que modos diferentes sean usados para objetivos diferentes; o, para claridad de programa, n�meros de archivo diferentes para ser usados para modos diferentes de acceso.

Si la opci�n LEN=reclen es usada, reclen puede no exceder el valor puesto por la opci�n de interruptor /s:reclen en la l�nea de orden.

En un ambiente de red, el uso de la declaraci�n OPEN est� basado sobre dos juegos diferentes de circunstancias:

lock puede ser uno de lo siguiente:

SHARED "no niegue ninguno" modo. Ningunas restricciones son colocadas en el leen/escriben la accesibilidad del archivo a otro proceso, salvo que el modo de falta no es permitido por ninguno de los modos incluso SHARED.
LOCK READ "niegue el " modo le�do. Una vez que un archivo es abierto LOCK READ acceso, ning�n otro proceso es concedido el leer-acceso a aquel archivo. Una tentativa de abrir un archivo con este acceso ser� fracasada, si el archivo es el modo vencido actualmente abierto o con un acceso le�do.
LOCK WRITE "niegue escriben" modo. Un archivo con �xito abierto LOCK WRITE  que el acceso no puede ser abierto para un acceso escribir por otro proceso. Una tentativa de abrir un archivo con este acceso ser� fracasada si el archivo ha sido abierto modo vencido, o con un acceso escribir por otro proceso.
LOCK READ WRITE "niegue todo" el modo "o exclusivo". Si un archivo es con �xito abierto con este acceso, el proceso tiene el acceso exclusivo al archivo. Un archivo que est� abierto actualmente en este modo no puede ser abierto otra vez en ning�n modo por ning�n proceso.
predeterminado el modo "de compatibilidad", en el cual la compatibilidad con otros BASICs es entendida. Ning�n acceso es especificado. El archivo puede ser abierto cualquier n�mero de tiempos por un proceso, a condici�n de que el archivo no sea abierto actualmente por otro proceso. Otros procesos son el acceso denegado al archivo mientras est� abierto bajo el acceso de falta. Por lo tanto, es funcionalmente exclusivo.

Cuando una tentativa es hecha para abrir un archivo a que ha tenido acceso antes otro proceso, el error "Permission Denied" resultar�. Un ejemplo de una situaci�n que genera este error es cuando un proceso intenta OPEN SHARED en un archivo que es OPEN LOCK READ WRITE por otro proceso.

Si una declaraci�n OPEN falla porque el modo es incompatible con instalado por la red compartiendo el acceso a un dispositivo, el error generado es "Path/File Access Error." Un ejemplo de este es cuando un proceso intenta OPEN un archivo para la salida en un directorio que ha sido compartido para le�do s�lo.

Para m�s informaci�n sobre la utilizaci�n de archivos en un ambiente conectado a una red, ver LOCK y UNLOCK declaraciones.

Ejemplos:

 10 OPEN "I",2,"INVEN"

Abre el archivo 2, inven, para la entrada secuencial.

1