4D v16.3

Documentos del sistema

Inicio

 
4D v16.3
Documentos del sistema

Documentos del sistema  


 

Todos los documentos y aplicaciones que utiliza en su ordenador están almacenados en archivos en los discos duros conectados o montados en su ordenador, o en discos externos u otros dispositivos de almacenamiento. En 4D, utilizamos los términos archivo o documento para referirnos a estos documentos y aplicaciones. Sin embargo, la mayoría de los comandos en este tema utilizan el término "documento" porque generalmente los utilizará para acceder a los documentos (en lugar de aplicación o archivos sistema) en disco.

Un disco duro puede ser formateado de manera que tenga una o varias particiones, cada una de ellas llamada un volumen. No importa si dos volúmenes están físicamente presentes en el mismo disco duro; al nivel de 4D, generalmente estos volúmenes se consideran entidades separadas y equivalentes.

Un volumen puede estar ubicado en un disco duro conectado físicamente a su ordenador o montado en una red por medio de un protocolo de distribución de archivos tal como TCP/IP, AFP o SMB (Macintosh). Cualquiera que sea el caso, a nivel de 4D, estos volúmenes son considerados del mismo modo cuando utiliza los comandos del tema Documentos del sistema (a menos que lo decida de otro modo y utilice plug-ins para extender las capacidades de su aplicación en este dominio).

Cada volumen tiene un nombre de volumen. En Windows, los volúmenes están designados por una letra seguida por dos puntos. Generalmente C: y D: se utilizan para designar los volúmenes que usted utiliza para lanzar su sistema (a menos que usted configure su PC de otra forma). Luego las letras de la E: a la Z: se utilizan para volúmenes adicionales conectados o montados en su PC (lectores DVD, otros lectores, lectores de red, etc.). En Macintosh, los volúmenes tienen nombres comunes; estos son los nombres que usted ve en el escritorio al nivel del Finder.

Generalmente, usted clasifica sus documentos en carpetas, que pueden contener otras carpetas. No es buena idea acumular cientos o miles de archivos en el mismo nivel de un volumen; es desordenado y vuelve lento su sistema. En Windows, una carpeta todavía es llamada un directorio. Las carpetas siempre se han llamado de esta manera en Macintosh.

Para identificar un documento de manera única, necesita saber el nombre del volumen y el/los nombre(s) de la(s) carpeta(s) donde el documento está ubicado como también el nombre del documento mismo. Si concatena todos estos nombres, usted obtiene la ruta de acceso al documento. En el nombre esta ruta, los nombres de las carpetas están separados por un carácter especial llamado separador de carpeta. En Windows, este carácter es la barra oblicua inversa (\); en Macintosh son los dos puntos (:).

Veamos un ejemplo. Usted tiene un documento Importante ubicado en la carpeta Memos, que está en la carpeta Documentos, que está en la carpeta Trabajo actual.

En Windows, si todo está ubicado en el drive C: drive (volumen), la ruta de acceso al documento es:

C:\Trabajo actual\Documentos\Memos\Importante Memo

Nota: igualmente el carácter \ es utilizado por el editor de métodos de 4D para designar las secuencias de escape. Para evitar todo problema de interpretación, el editor transforma automáticamente las rutas de acceso del tipo C:\Disk en C:\\Disk. Para mayor información, consulte el párrafo “Especificación de nombres y rutas de acceso de documentos.”.

En Macintosh, si todo el conjunto está ubicado en el disco (volumen) Interno, la ruta de acceso del documento es:

Interno:Trabajo actual:Documentos:Memos:Importante Memo

En Windows, el nombre del documento tiene el sufijo .TXT; veremos porqué en la siguiente sección.

Sin importar la plataforma, la ruta completa de un documento puede expresarse de esta manera:

VolNombre DirSep { DirNombre DirSep { DirNombre DirSep { ... } } } DocNombre

Todos los documentos (archivos) ubicados en los volúmenes tienen varias características, llamadas generalmente atributos o propiedades: por ejemplo el nombre del documento mismo, el tipo y el creador.

Un documento está abierto en modo lectura/escritura, abierto en modo sólo lectura o cerrado. Utilizando los comandos integrados de 4D, un documento puede abrirse en modo lectura/escritura por sólo un proceso a la vez. Un proceso puede abrir varios documentos, varios procesos pueden abrir múltiples documentos, usted puede abrir el mismo documento en modo sólo lectura tantas veces como sea necesario, pero no puede abrir dos veces simultáneamente el mismo documento en modo lectura/escritura.

Usted abre un documento con los comandos Open document, Create document y Append document. Los comandos Create document y Append document abren automáticamente los documentos en modo lectura/escritura. Sólo el comando Open document le permite elegir el modo de apertura. Una vez abierto un documento en lectura/escritura, usted puede leer y escribir caracteres en el documento (ver los comandos RECEIVE PACKET y SEND PACKET). Cuando termina con un documento, generalmente se cierra con el comando CLOSE DOCUMENT.

Se hace referencia a todos los documentos abiertos utilizando la expresión DocRef devuelta por los comandos Open document, Create document y Append document. DocRef identifica de manera única un documento abierto. Es una expresión de tipo Hora. Todos los comandos que funcionan con documentos abiertos esperan DocRef como parámetro. Si pasa un DocRef incorrecto a uno de estos comandos, se genera un error del administrador de archivos.

Nota: cuando se llama desde un proceso apropiativo, una referencia DocRef sólo se puede utilizar a partir de este proceso apropiativo. Cuando se llama desde un proceso cooperativo, una referencia DocRef se puede utilizar desde cualquier otro proceso cooperativo.

Cuando accede a documentos (apertura, cierre, eliminación, cambio de nombre, copia), cuando cambia las propiedades de un documento o cuando lee y escribe caracteres en un documento, E/S pueden ocurrir errores. Un documento puede no encontrarse; puede estar bloqueado; puede ya estar abierto en modo escritura. Puede reparar estos errores con un método de gestión de errores instalado por el comando ON ERR CALL. La mayoría de los errores que pueden ocurrir mientras se utilizan documentos del sistema se describen en la sección Errores de gestión de archivos del SO.

Los comandos Open document, Create document, Append document y Select document permiten acceder a un documento utilizando las cajas de diálogo estándar de abrir o cerrar archivos. Cuando accede a un documento por medio de un diálogo estándar, 4D devuelve la ruta completa del documento en la variable sistema Document. Esta variable sistema tiene que distinguirse del parámetro document que aparece en la lista de parámetros de los comandos.

Se puede encontrar información adicional sobre la variable del sistema Document en la sección Variables sistema.

La mayoría de las rutinas de esta sección esperan un nombre o ruta de acceso al documento (excepto cuando se indica de otra forma). Si pasa un nombre, el comando busca el documento dentro de la carpeta de la base. Si pasa una ruta de acceso, debe ser válida.

Si pasa un nombre o ruta de acceso incorrecto, el comando genera un error del administrador de archivos que puede interceptar utilizando un método ON ERR CALL.

El editor de métodos de 4D permite utilizar secuencias de escape. Una secuencia de escape es un conjunto de caracteres que se utilizan para remplazar un carácter “especial”. Le secuencia comienza con el carácter barra oblicua inversa \, seguido por un caracter. Por ejemplo, \t es la secuencia de escape para el carácter Tab.

El carácter \ también se utiliza como separador de rutas de acceso en Windows. Por lo general, 4D interpretará correctamente las rutas de acceso Windows que se introducen en el editor de métodos reemplazando automáticamente las barras simples \ con barras dobles \\. Por ejemplo, C:\Carpeta se convertirá en C:\\Carpeta.

Sin embargo, si escribe C:\MisDocumentos\Nuevo, 4D mostrará C:\\MisDocumentos\Nuevo. En este caso, el segundo \ es interpretado de manera incorrecta como N (una secuencia de escape existente). Por lo tanto debe introducir una barra doble \\ cuando quiera insertar una barra oblicua inversa delante de un carácter que se utiliza en una de las secuencias de escape reconocida por 4D.

Las siguientes son las secuencias de escape reconocidas por 4D:

Secuencia de escapeCaracter reemplazado
\nLF (Nueva línea)
\tHT (Tabulación)
\rCR (Retorno de carro)
\\\ (Barra oblicua inversa)
\"" (Comillas)

La mayoría de los comandos 4D de gestión de documentos y carpetas aceptan las rutas de acceso relativas o absolutas:

  • Las rutas de acceso relativas definen una ubicación con respecto a una carpeta presente en el disco. En 4D, las rutas de acceso relativas  se expresan por lo general respecto a la carpeta de la base, es decir a la carpeta que contiene el archivo de estructura. Las rutas de acceso relativas son particularmente útiles para el despliegue de aplicaciones en entornos heterogéneos.
  • Las rutas de acceso absolutas definen una ubicación a partir de la raíz de un volumen y no dependen de la posición actual de la carpeta de la base.

Para determinar si una ruta de acceso pasada a un comando debe interpretarse como absoluta o relativa, 4D aplica un algoritmo específico para cada plataforma.

Si el parámetro contiene únicamente los caracteres y si el segundo es un ':',
    o si el texto contiene ':' y '\' como segundo y tercer carácter,
    o si el texto comienza por "\\",
luego la ruta de acceso es absoluta.       

En todos los demás casos, la ruta es relativa.

Ejemplos con el comando CREATE FOLDER:

 CREATE FOLDER("lunes") // ruta relativa
 CREATE FOLDER("\lunes") // ruta relativa
 CREATE FOLDER("\lunes\martes") //ruta relativa
 CREATE FOLDER("c:") // ruta absoluta
 CREATE FOLDER("d:\lunes") // ruta absoluta
 CREATE FOLDER("\\srv-Internal\temp") // ruta absoluta

Si el texto comienza con un separador de carpeta':',
    o si no contiene ninguno,
luego la ruta de acceso es relativa.

En todos los demás casos, la ruta es absoluta.

Ejemplos con el comando CREATE FOLDER:

 CREATE FOLDER("lunes") // ruta relativa
 CREATE FOLDER("macintosh hd:") // ruta absoluta
 CREATE FOLDER("lunes:martes") //ruta absoluta (un volumen debe llamarse lunes)
 CREATE FOLDER(":lunes:martes") // ruta relativa

Detectar sobre cuál plataforma trabaja

Aunque 4D ofrece comandos, tal como MAP FILE TYPES, para eliminar las modificaciones de código asociadas a las particularidades de las plataformas, una vez comience a trabajar a un nivel más bajo manipulando los documentos en disco (tal como la obtención de rutas de acceso por programación), debe saber si está trabajando bajo una plataforma Macintosh o Windows.

El método de proyecto En windows a continuación permite conocer si su base se está corriendo en Windows:

  //Método de proyecto En Windows
  //En Windows -> Booleano
  //En Windows -> True si la base está bajo Windows
 
 C_BOOLEAN($0)
 C_LONGINT($vlPlataforma;$vlSistema;$vlEquipo)
 
 PLATFORM PROPERTIES($vlPlataforma;$vlSistema;$vlEquipo)
 $0:=($vlPlataforma=Windows)

Extraer el nombre del archivo de una ruta de acceso completa

Una vez haya obtenido el nombre completo (la ruta de acceso + nombre del archivo) de un documento, podría necesitar extraer el nombre del archivo del documento, por ejemplo, para mostrarlo en el título de una ventana. El método de proyecto Extraer nombre del archivo hace esto en Windows y Macintosh.

  //Método de proyecto Extraer nombre del archivo
  //Extraer nombre del archivo (Cadena) -> Cadena
  //Extraer nombre del archivo ( nombre largo del archivo ) -> nombre del archivo
 C_TEXT($1;$0)
 C_LONGINT($viLen;$viPos;$viChar;$viDirSymbol)
 $viDirSymbol:=Character code(Folder separator)
 $viLen:=Length($1)
 $viPos:=0
 For($viChar;$viLen;1;-1)
    If(Character code($1$viChar≥)=$viDirSymbol)
       $viPos:=$viChar
       $viChar:=0
    End if
 End for
 If($viPos>0)
    $0:=Substring($1;$viPos+1)
 Else
    $0:=$1
 End if
 If(<>vbDebugOn) //Define esta variable en True o False en el Método de base On Startup
    If($0="")
       TRACE
    End if
 End if

• Extraer la ruta de acceso del nombre largo

Una vez haya obtenido el nombre largo del archivo (ruta de acceso+ nombre de archivo), puede necesitar extraer la ruta de acceso al archivo, por ejemplo para guardar otros documentos en la misma ubicación. El método de proyecto Extraer ruta de acceso hace esto en Windows y Macintosh.

  //Método de proyecto Extraer ruta de acceso
  //Extraer ruta de acceso (Cadena)
  //Extraer ruta de acceso ( Nombre largo ) -> Ruta de acceso
 C_TEXT($1;$0)
 C_LONGINT($viLen;$viPos;$viChar;$viDirSymbol)
 $viDirSymbol:=Character code(Folder separator)
 $viLen:=Length($1)
 $viPos:=0
 For($viChar;$viLen;1;-1)
    If(Character code($1$viChar≥)=$viDirSymbol)
       $viPos:=$viChar
       $viChar:=0
    End if
 End for
 If($viPos>0)
    $0:=Substring($1;1;$viPos)
 Else
    $0:=$1
 End if
 If(<>vbDebugOn) //Colocar esta variable en True o False en el Método de base On Startup
    If($0="")
       TRACE
    End if
 End if



Ver también 

Append document
CLOSE DOCUMENT
COPY DOCUMENT
Create document
CREATE FOLDER
DELETE DOCUMENT
Document creator
DOCUMENT LIST
Document type
Documentos sistema
FOLDER LIST
Get document position
GET DOCUMENT PROPERTIES
Get document size
MAP FILE TYPES
MOVE DOCUMENT
Open document
Select document
SET DOCUMENT CREATOR
SET DOCUMENT POSITION
SET DOCUMENT PROPERTIES
SET DOCUMENT SIZE
SET DOCUMENT TYPE
Test path name
VOLUME ATTRIBUTES
VOLUME LIST

 
PROPIEDADES 

Producto: 4D
Tema: Documentos del sistema

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)