Saltar al contenido principal
Versión: Siguiente

Documentos sistema

Append document ( doc : Text {; tipo : Text} ) : Time
CLOSE DOCUMENT ( docRef : Time )
Convert path POSIX to system ( rutaPosix : Text {; *} ) : Text
Convert path system to POSIX ( rutaSistema : Text {; *} ) : Text
COPY DOCUMENT ( nomFuente : Text ; nomDest : Text {; nuevNombre : Text} {; *} )
CREATE ALIAS ( rutaObjetivo : Text ; rutaAlias : Text )
Create document ( doc : Text {; tipo : Text} ) : Time
CREATE FOLDER ( rutaCarpeta : Text {; Operador} )
DELETE DOCUMENT ( doc : Text )
DELETE FOLDER ( carpeta : Text {; opcionEliminacion : Integer} )
DOCUMENT LIST ( nombreRuta : Text ; documentos : Text array {; opciones : Integer} )
Document to text ( nomArchivo : Text {; conjCaracteres : Text, Integer {; modoRetorno : Integer}} ) : Text
FOLDER LIST ( nombreRuta : Text ; directorios : Text array )
GET DOCUMENT ICON ( rutaDoc : Text ; icono : Picture {; tamaño : Integer} )
Get document position ( docRef : Time ) : Real
GET DOCUMENT PROPERTIES ( doc : Text ; bloqueado : Boolean ; invisible : Boolean ; creado el ; creado a las ; modificado el ; modificado a las )
Get document size ( document : Text, Time {; *} ) : Real
Localized document path ( rutaRelativa : Text ) : Text
MOVE DOCUMENT ( rutaFuente : Text ; rutaDest : Text )
Object to path ( objRuta : Object ) : Text
Open document ( doc : Text {; tipo : Text}{; modo : Integer} ) : Time
Path to object ( Ruta : Text {; tipoRuta : Integer} ) : Object
RESOLVE ALIAS ( rutaAlias : Text ; rutaObjetivo : Text )
Select document ( directorio : Text, Integer ; tiposArchivos : Text ; titulo : Text ; opciones : Integer {; seleccionados : Text array} ) : Text
Select folder : Text
Select folder ( mensaje : Text {; rutaDefecto : Text, Integer {; opciones : Integer}} ) : Text

SET DOCUMENT POSITION ( docRef : Time ; offset : Real {; ancla : Integer} )
SET DOCUMENT PROPERTIES ( doc : Text ; bloqueado : Boolean ; invisible : Boolean ; creado el ; creado a las ; modificado el ; modificado a las )
SET DOCUMENT SIZE ( docRef : Time ; tamaño : Real )
SHOW ON DISK ( nombreRuta : Text {; *} )
Test path name ( nombreRuta : Text ) : Integer
TEXT TO DOCUMENT ( nomArchivo : Text ; texto : Text {; conjCaract : Text, Integer {; ModoRetorno : Integer}} )
VOLUME ATTRIBUTES ( volumen : Text ; tamaño : Real ; utilizado : Real ; libre : Real )
VOLUME LIST ( volumenes : Text array )
Compatibilidad

Los comandos heredados de este tema pueden normalmente ser reemplazados por comandos del tema Archivo y Carpeta y sus clases asociadas Archivo, Carpeta, ZipFile y ZipFolder, permitiéndole manejar archivos y carpetas como objetos.

Número de referencia del documento

Un documento se abre con los comandos Open document, Create document y Append document. Una vez abierto el documento, puede leer y escribir caracteres en él mediante comandos como RECEIVE PACKET y SEND PACKET. Cuando haya terminado con el documento, normalmente lo cierra usando el comando CLOSE DOCUMENT.

Todos los documentos abiertos devueltos por estos comandos se referencian utilizando un número de referencia del documento (DocRef). Un DocRef identifica de forma única un documento abierto. Formalmente es una expresión del tipo Tiempo. Todos los comandos que trabajan con documentos abiertos esperan DocRef como parámetro. Si pasa un DocRef incorrecto a uno de estos comandos, se produce un error del gestor de archivos.

Un documento sólo puede ser abierto en modo lectura/escritura por un proceso a la vez. En modo solo lectura, un proceso puede abrir varios documentos, varios procesos pueden abrir múltiples documentos y se puede abrir el mismo documento tantas veces como sea necesario, pero no se puede abrir el mismo documento en modo lectura/escritura dos veces a la vez. Los comandos Create document y Append document automáticamente abren documentos en modo de lectura/escritura. Solo el comando Open document le permite elegir el modo de apertura.

nota

Cuando se llama desde un proceso apropiativo, una referencia DocRef sólo puede usarse desde este proceso preferente. Cuando se llama desde un proceso cooperativo, se puede utilizar una referencia DocRef de cualquier otro proceso cooperativo.

La variable sistema Documento

Los comandos Open document, Create document, Append document y Select document le permiten acceder a un documento mediante los cuadros de diálogo estándar para abrir o guardar archivos. Cuando se accede a un documento a través de un cuadro de diálogo estándar, 4D devuelve la ruta completa del documento en la variable de sistema Document. Esta variable del sistema debe distinguirse del parámetro document que aparece en la lista de parámetros de los comandos.

Ruta absoluta o relativa

La mayoría de las rutinas de esta sección admiten nombres de documentos, rutas relativas o rutas absolutas.

  • Los nombres de ruta relativos definen una ubicación con respecto a una carpeta situada en el disco. Si sólo se pasa el nombre del documento, se considera que se está utilizando una ruta relativa. En 4D, una ruta relativa suele expresarse con respecto a la carpeta del proyecto, es decir, la carpeta que contiene el archivo .project. Los nombres de ruta relativos son especialmente útiles cuando se despliegan aplicaciones en entornos heterogéneos.
  • Las rutas absolutas definen una ubicación con respecto a la raíz del volumen, por lo que no dependen de la ubicación actual de la carpeta del proyecto.

Para determinar si una ruta pasada a un comando debe ser interpretada como absoluta o relativa, 4D aplica un algoritmo específico en cada plataforma.

Windows

  • Si el parámetro contiene solo dos caracteres y el segundo es un ':'
  • o si el texto contiene ':' y '' como segundo y tercer caracter,
  • o si el texto empieza por "\",
  • entonces la ruta es absoluta.

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

Ejemplos con el comando CREATE FOLDER:

 CREATE FOLDER("lundi") // ruta relativa
CREATE FOLDER("\Monday") // ruta relativa
CREATE FOLDER("\Monday\Tuesday") // ruta relativa
CREATE FOLDER("c:") // ruta absoluta
CREATE FOLDER("d:\Monday") // ruta absoluta
CREATE FOLDER("\\srv-Internal\temp") // ruta absoluta
nota

El editor de código de 4D permite el uso de secuencias de escape. Una secuencia de escape comienza con una barra invertida \, seguida de un caracter. Por ejemplo, \t es la secuencia de escape para el carácter de tabulación.

El carácter \ también se utiliza como separador en las rutas de acceso en Windows. En general, 4D interpretará correctamente las rutas de Windows introducidas en el editor de métodos sustituyendo las barras invertidas simples \ por barras invertidas dobles \\. Por ejemplo, C:\Folder se convertirá en C:\\Folder.

Sin embargo, si escribe C:\MyDocuments\New, 4D mostrará C:\\MyDocuments\New. En este caso, el segundo \ se interpreta erróneamente como \N (una secuencia de escape válida). Por lo tanto, debe introducir un doble "-" cuando quiera insertar una barra invertida antes de un caracter que se utiliza en una de las secuencias de escape reconocidas por 4D.

macOS

  • Si el texto comienza con el separador de carpetas ':',
  • o si no contiene ninguno,
  • entonces la ruta es relativa.

En los demás casos, es absoluta.

Ejemplos con el comando CREATE FOLDER:


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

Extracción del contenido de una ruta

Puedes gestionar el contenido de las rutas de acceso mediante los comandos Path to object y Object to path. En particular, usando estos comandos, se puede extraer de una ruta:

  • un nombre de archivo,
  • la ruta de la carpeta padre,
  • la extensión del archivo o carpeta.