PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE


Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Gestión de errores
  • Modo de funcionamiento en Windows Vista (y posterior)
  • Modo de apertura del archivo
  • Múltiples aperturas del mismo archivo
  • Posición en el fichero
  • Concatenación de varios archivos externos
  • Compatibilidad entre las diferentes versiones de WINDEV/WEBDEV
  • Bloqueo y desbloqueo
  • Gestión de archivos de texto en formato UNICODE
  • Abrir un puerto de infrarrojos
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Abre un archivo externo (ANSI o UNICODE) para manipular por programación. También tiene la posibilidad de utilizar fLoadText.
Observaciones:
  • Para los archivos externos de texto de manipular, se recomienda utilizar fLoadText/fSaveText y fLoadBuffer/fSaveBuffer.
  • Para manipular archivos externos de tipo binario, utilice las funciones fCreate o fOpen.
  • Para abrir y mostrar un archivo externo en el software asociado (por ejemplo, para mostrar un archivo.DOC en Word), utilice ShellExecute.
Versiones 15 y posteriores
Android Esta función ahora está disponible para aplicaciones Android.
Nueva funcionalidad versión 15
Android Esta función ahora está disponible para aplicaciones Android.
Android Esta función ahora está disponible para aplicaciones Android.
Versiones 17 y posteriores
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Versiones 18 y posteriores
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Nueva funcionalidad versión 18
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Versiones 21 y posteriores
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Ejemplo
WINDEVWEBDEV - Código ServidorReportes y ConsultasJavaPHPAjaxCódigo de Usuario (UMC)
// Open an external file
ResOpening = fOpen("C:\MyDirectories\File.txt", foReadWrite)
IF ResOpening <> -1 THEN
...
END
Windows Mobile
// Open an external file
ResOpening = fOpen("\MyDirectories\File.txt", foReadWrite)
IF ResOpening <> -1 THEN
...
END
Windows Mobile
// Open an infrared port
ResOpening = fOpen("COM3", foWrite)
IF ResOpening <> -1 THEN
fWrite(ResOpening, "Bytes to transmit")
END
Sintaxis
<Result> = fOpen(<File path> [, <Opening mode>])
<Result>: Integro
Corresponde a:
  • el identificador del fichero externo. Este identificador será utilizado por todas las funciones para manejar los archivos externos.
  • -1 si se produce un error. Para conocer los detalles del error, utilice la función ErrorInfo con la constante errMessage.
<File path>: Cadena de caracteres (con comillas)
Nombre y ruta completa (o relativa) del archivo (hasta 260 caracteres). Se puede utilizar una ruta de tipo UNC.
Versiones 15 y posteriores
AndroidWidget Android Este parámetro puede corresponder a un ruta completo o a un ruta relativo al directorio actual (devuelto por fCurrentDir). Este parámetro distingue entre mayúsculas y minúsculas.
Recordatorio: En Android, el sistema de archivos es de solo lectura tanto en el dispositivo y como en el emulador. Una aplicación tiene derecho a escribir en el directorio de instalación o en uno de los subdirectorios, así como en la memoria externa (SDCard).
Nueva funcionalidad versión 15
AndroidWidget Android Este parámetro puede corresponder a un ruta completo o a un ruta relativo al directorio actual (devuelto por fCurrentDir). Este parámetro distingue entre mayúsculas y minúsculas.
Recordatorio: En Android, el sistema de archivos es de solo lectura tanto en el dispositivo y como en el emulador. Una aplicación tiene derecho a escribir en el directorio de instalación o en uno de los subdirectorios, así como en la memoria externa (SDCard).
AndroidWidget Android Este parámetro puede corresponder a un ruta completo o a un ruta relativo al directorio actual (devuelto por fCurrentDir). Este parámetro distingue entre mayúsculas y minúsculas.
Recordatorio: En Android, el sistema de archivos es de solo lectura tanto en el dispositivo y como en el emulador. Una aplicación tiene derecho a escribir en el directorio de instalación o en uno de los subdirectorios, así como en la memoria externa (SDCard).
Windows Mobile Esta ruta debe ser completa o de tipo UNC. No puede ser relativa.
<Opening mode>: Constante o combinación de constantes opcional
Constantes utilizadas para definir el modo de apertura del archivo, el modo de acceso al archivo y el modo de bloqueo del archivo.
  • Modo de apertura del archivo:
    foAddAbrir el archivo en modo "adición. En el momento de la apertura, la posición actual corresponde al último byte del archivo.
    foCrearCreación del fichero. Si el archivo ya existe (mismo nombre, mismo directorio), este archivo se borra y se vuelve a crear.
    paraCrear si no existeCree el fichero sólo si este fichero no existe.
    • Si el archivo no existe, abra el archivo en modo "adicional".
    • Si el archivo existe, la posición actual corresponde al primer byte del archivo.
  • Modo de acceso al archivo. Este tipo es utilizado por fReadLine y fWriteLine para definir el tipo de información a leer y escribir en el archivo externo:
    Versiones 17 y posteriores
    foAnsi
    Nueva funcionalidad versión 17
    foAnsi
    foAnsi
    Archivo ansi. Esta constante se utiliza para gestionar un archivo Ansi cuando se activa el modo "Usar cadenas Unicode en tiempo de ejecución" en la configuración del proyecto.
    Modo utilizado por defecto:
    • en los proyectos WINDEV y WEBDEV antes de la versión 17.
    • en las configuraciones de los proyectos WINDEV y WEBDEV que utilizan el modo "Usar cadenas Ansi en tiempo de ejecución" de la versión 17.
    foUnicodeArchivo Unicode. Esta constante permite gestionar archivos Unicode cuando el modo "Utilizar cadenas ANSI en ejecución" está activado en la configuración del proyecto.
    Modo utilizado por defecto:
    • en los proyectos de WINDEV Mobile independientemente del modo y versión utilizados.
    • en las configuraciones de los proyectos WINDEV y WEBDEV que utilizan el modo "Usar cadenas Unicode en tiempo de ejecución" de la versión 17.
    AndroidWidget Android JavaPHP Esta constante no está disponible.
  • Modo de bloqueo de archivos:
    foWriteLockLas otras aplicaciones no pueden modificar el archivo actual. LinuxAndroidWidget Android Windows MobileJavaPHP Esta constante no está disponible.
    para Bloqueo de LecturaLas otras aplicaciones no pueden leer el fichero actual. LinuxAndroidWidget Android Windows MobileJavaPHP Esta constante no está disponible.
    fOrMaAbrir el archivo en modo "sólo escritura. Este archivo sólo puede ser modificado. AndroidWidget Android Java Esta constante no está disponible.
    PARA LEERAbrir el archivo en modo "sólo lectura. Este archivo sólo puede ser leído.
    PARA LEER ESCRIBIR
    (Valor predeterminado)
    Abrir el archivo en modo "lectura/escritura. Se puede leer y modificar este archivo (equivalente a foRead+foWrite).
    Versiones 16 y posteriores
    para borrado automático
    Nueva funcionalidad versión 16
    para borrado automático
    para borrado automático
    El archivo se bloquea cuando se abre y se borra automáticamente cuando se cierra (llamada a fClose o al final de la aplicación).
    Si varias aplicaciones han abierto este archivo, se borrará automáticamente cuando la última aplicación lo cierre (llamada a fClose o al final de la aplicación). LinuxWindows Mobile Esta constante no está disponible.
    Java Si el archivo es utilizado por otra aplicación cuando se cierra (llamada a fClose o al final de la aplicación), no será eliminado.
  • Versiones 19 y posteriores
    Otras opciones:
    foAccesoSecuencialOptimiza la gestión de las cachés del archivo especificando a Windows que el archivo se leerá desde el principio hasta el final.. AndroidWidget Android JavaPHP Esta constante no está disponible.
    Nueva funcionalidad versión 19
    Otras opciones:
    foAccesoSecuencialOptimiza la gestión de las cachés del archivo especificando a Windows que el archivo se leerá desde el principio hasta el final.. AndroidWidget Android JavaPHP Esta constante no está disponible.
    Otras opciones:
    foAccesoSecuencialOptimiza la gestión de las cachés del archivo especificando a Windows que el archivo se leerá desde el principio hasta el final.. AndroidWidget Android JavaPHP Esta constante no está disponible.
Observaciones

Gestión de errores

La función fOpen genera un error en los siguientes casos:
  • el archivo no existe,
  • el archivo está bloqueado por otro ordenador o por otra aplicación,
  • el usuario no tiene derechos de lectura o escritura sobre el archivo a abrir.
  • se utilizó una cadena Unicode para <File ruta> en un sistema operativo como Windows 98 o Windows Me.
Observación: La apertura en modificación de un archivo encontrado en un disquete protegido contra escritura se ha realizado con éxito.
WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)

Modo de funcionamiento en Windows Vista (y posterior)

Si esta función no funciona correctamente en Windows Vista (y posterior), compruebe si el archivo o directorio utilizado no está en ninguno de los directorios del sistema (directorio de Windows o directorio "Archivos de programa").
Indeed, en Windows Vista (y posterior), con la cuenta de usuario Mecanismo UAC (Control) activada, debes tener los privilegios de administrador de manipular y/o modificar los archivos o directorios en los directorios del sistema (directorio de Windows o directorio "Archivos de Programa").
Consejo de programación: A manipular y/o modificar los archivos o directorios sin privilegios de administrador, debería:
  • evite escribir en el directorio de Windows o en el directorio "Archivos de programa",
  • utilizar el directorio del sistema que corresponde a la aplicación (devuelto por la función SysDir y la constante srCommonAppData).

Modo de apertura del archivo

Por defecto, si no se especifica el modo de acceso al archivo, éste se abre según el atributo de archivo (definido en Windows).
Se produce un error si el modo de acceso especificado no corresponde al atributo de archivo.
Un archivo en modo modo "lectura/escritura" podrá abrirse en todos los modos de acceso propuestos por fOpen (constantes foWrite, foRead y foReadWrite).
Un archivo en modo de "solo lectura" solo puede abrirse en este modo (constante foRead).

Múltiples aperturas del mismo archivo

El mismo archivo se puede abrir varias veces simultáneamente. Cada apertura está asociada a un identificador de archivo diferente. Cada versión del archivo debe ser manejada individualmente a través de su propio identificador.

Posición en el fichero

Al abrir un archivo, la posición actual corresponde a:
  • el primer byte de archivo,
  • el último byte del archivo es el archivo está abierto en modo "adición" (constante foAdd).
Esta posición puede ser modificada por fSeek.

Concatenación de varios archivos externos

Para concatenar varios archivos externos, debe hacerlo:
  • abrir el archivo de destino en modo "adición" (constante foAdd),
  • abrir el archivo fuente en modo "solo lectura" (constante foRead o foReadWrite),
  • leer el archivo de la fuente línea por línea con fReadLine,
  • escribir en el archivo de destino línea por línea con fWriteLine.

Compatibilidad entre las diferentes versiones de WINDEV/WEBDEV

Las constantes foText (apertura en modo texto) y foBinario (apertura en modo binario) ya no son necesarias. Se sustituyen por el valor 0. En este caso, la función fOpen intenta abrir el archivo en lectura/escritura.
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppAjaxCódigo de Usuario (UMC)

Bloqueo y desbloqueo

Un archivo bloqueado desde que se abre (constantes foReadLock o foWriteLock) se desbloqueará automáticamente cuando se cierra (con la función fClose).
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindows MobileAjaxCódigo de Usuario (UMC)

Gestión de archivos de texto en formato UNICODE

La función fOpen permite leer y escribir archivos de texto en formato UNICODE "UTF-16 little endian".
La sintaxis:
  • fOpen(<Nombre de archivo>, foRead + foUnicode): se usa para abrir un archivo Unicode. Si la marca "Current Unicode" (FFFE) se encuentra al principio del archivo, se lee automáticamente.
  • fOpen(<Nombre de archivo>, foCreación + foUnicode): se usa para crear un archivo Unicode. La marca "Current Unicode" (FFFE) se añade automáticamente al principio del archivo..
  • fOpen (<Nombre del archivo>, foCreación de no encontrar + foUnicode): se utiliza para crear un fichero UNICODE si este fichero no existe. La marca "Current Unicode" (FFFE) se añade automáticamente al principio del archivo que se está creando.. Si el archivo existe y comienza con la marca "Current Unicode" (FFFE), esta marca se lee automáticamente.
Windows Mobile

Abrir un puerto de infrarrojos

La función fOpen también permite abrir un puerto infrarrojo. Tendrá la capacidad, por ejemplo, de enviar una secuencia de bytes al puerto.
Una vez abierto, el puerto infrarrojo se comporta como un archivo externo. Puede ser manejado por la funciones para ficheros externos.
Para abrir un puerto infrarrojo, utilice la siguiente sintaxis:
<Result> = fOpen("COM3:", foWrite)
Componente : wd250std.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Example ReadFile
PROCEDURE ReadFile(ArquivoTxt is string, TipoUnicodeToAnsi is string)

//Le arquivo texto
INFO(TIMESYS())

// Declare the variables
PathFile is string = ArquivoTxt
IdFile, ResCloseFile, FileID, NumeroLinha is int
Line is string

NextTitle("Atencao")

IF fFileExist(ArquivoTxt) = true

// Open the file
FileID = fOpen(PathFile,foReadWrite)
IF IdFile = -1 THEN
Error(ErrorInfo(errMessage))
ELSE

if TipoAnsiUnicode = "UnicodeToAnsi"
//Converte de Unicode para Ansi
Line = UnicodeToAnsi(fReadLine(FileID))
else
Line = fReadLine(FileID)
end

//Linha 1
NumeroLinha = 1
/// ----COLOQUE AQUI O PROGRESS BAR = 1
//Info("Linha:" + NumeroLinha, Line) ///----------------- LINHA LIDA
//Inclua aqui a SUB Procedure de importacao dos dados

WHILE Line <> EOT AND Line <> ""

//Proxima linha
NumeroLinha += 1
/// ----COLOQUE AQUI O PROGRESS BAR + 1
Line = fReadLine(FileID)
//Info("Linha:" + NumeroLinha, Line) ///----------------- LINHA LIDA
//Inclua aqui a SUB Procedure de importacao dos dados
END
IF Line = "" THEN Error(ErrorInfo(errMessage))
IF Line = EOT THEN Info("Final do Arquivo.")
ResCloseFile = fClose(IdFile)
IF ResCloseFile = -1 THEN
//Error(ErrorInfo(errMessage))
END

END

ELSE
Info("Arquivo não encontrado!")
END

info(NumeroLinha,TIMESYS())
adrianoboller
21 02 2015