FOPEN en modo ejecucion no funciona

431 views
Skip to first unread message

Gustavo Rojo

unread,
Nov 21, 2018, 2:58:46 PM11/21/18
to Comunidad de Visual Foxpro en Español
Estimados, necesitaria una mano urgente con este tema.

Tengo este procedimiento en un boton de un formulario:

archivo = 'Pedido21112018155100GUSTAVO ROJO.txt' (este dato es dinamico y lo genero a partir de un datetime del formualrio)
IF FILE(archivo) 
    gnErrFile = FOPEN(archivo) 
  ELSE
    gnErrFile = FCREATE(archivo) 
ENDIF

IF gnErrFile < 0 
    WAIT 'Error, no se pudo abrir o crear el archivo' WINDOW
ENDIF

=FCLOSE(gnErrFile )

IF gnErrFile > 0
    MODIFY FILE (archivo)
     =messagebox('Aca comienxo el proceso del archivo',48,'TXT')
endif

Esto funciona bien en modo de desarrollo, cuando compilo el .exe, no funciona, le coloque un WAIT luego del "gnErrFile = FOPEN(archivo) " y me muestra un 7...
no se por donde buscar el error, agradeceria que me puedan ayudar.

Desde ya muchas gracias.

Antonio Meza

unread,
Nov 21, 2018, 4:13:02 PM11/21/18
to Comunidad de Visual Foxpro en Español
Prueba con la ruta completa del archivo ejemplo

archivo = 'c:\archivos\Pedido21112018155100GUSTAVO ROJO.txt'

saludos
Antonio Meza

Gustavo Rojo

unread,
Nov 22, 2018, 5:45:43 AM11/22/18
to Comunidad de Visual Foxpro en Español
Hola Antonio, muchas gracias por responder.
Ya uso la ruta completa, el codigo que utilizo es este:

archivo = 'C:\Atilio\Pedido'+PADL(DAY(v_pedido.fecha),2,'0') + PADL(MONTH(v_pedido.fecha),2,'0') + PADL(YEAR(v_pedido.fecha),4,'0') + PADL(HOUR(v_pedido.fecha),2,'0') + PADL(MINUTE(v_pedido.fecha),2,'0') + PADL(SEC(v_pedido.fecha),2,'0') + alltrim(v_pedido.razon_social) + '.txt'

Lo que me confunde es que en entorno de desarrollo funciona ok.... y luego de compilar no funciona

Saludos.

Fidel Charny

unread,
Nov 22, 2018, 9:01:23 AM11/22/18
to Comunidad de Visual Foxpro en Español

No entiendo ese MODIFY FILE. Se supone que es para trabajar el archivo en bajo nivel:
Para leer:
lcString = fgets(gnErrFile,8192)

Para escribir
lcString= "Lo que quiero agregar"
=fputs(gnErrFile,m.lcString)

O los comandos necesarios.

Ahora, si se necesita modificar manualmente y el archivo no es demasiado grande, tal vez te convenga  algo como
This.cString = FILETOSTR(m.Archivo)
THIS.EDIT1.VALUE = THIS.CSTRING
Luego si lo quieres guardar, usa STRTOFILE()

Si e archivo es grande o incómodo para un control EDit, puedes utilizar un editor de texto (Notepad, Notepad++, etc.)

Gustavo Rojo

unread,
Nov 22, 2018, 9:12:09 AM11/22/18
to Comunidad de Visual Foxpro en Español
Hola Fidel, muchas gracias por tu respuesta.

Te doy contexto de para que uso este codigo asi es mas facil que me puedan ayudar.
estos archivos estan relacionados a una orden de pedido, y se usan para validar el pedido. Primero se carga el pedido en un formulario, luego con un colector de datos (escaner manual) se escanean los productos, se crea o abre el archivo, se descargan las lecturas del escaner y se guarda el archivo, luego con otro proceso, paso ese txt a una tabla y la comparo con el pedido, de esa forma, valido que el pedido este bien preparado.

Dime que te parece o si ves algo mas facil de implementar.

Germán Fabricio Valdez

unread,
Nov 22, 2018, 9:35:01 AM11/22/18
to Comunidad de Visual Foxpro en Español
El error que veo fopen(archivo,12)
Pero fíjate, no específicas más detalle del error

ZeRoberto

unread,
Nov 22, 2018, 10:16:15 AM11/22/18
to publice...@googlegroups.com
En que parte te da el error y que error es?



Saludos 


Gustavo Rojo

unread,
Nov 22, 2018, 11:29:02 AM11/22/18
to Comunidad de Visual Foxpro en Español
Hola ZeRobero y German, gracias por responder.
El error me lo genera una vez compilado el .exe, en principio no muestra ningun error en pantalla, se congela el formulario, le agregue un WAIT + la variable gnErrFile = FOPEN(archivo,12)  , eso me muestra un '7' en pantalla, es la unica referencia que tengo. En modo diseño, funciona perfectamente.

Saludos.

Marcos Godoy

unread,
Nov 22, 2018, 11:31:41 AM11/22/18
to publice...@googlegroups.com
Perdón, el archivo de texto que abris con fopen esta incluido en el proyecto, por que si es asi, queda en el exe y es de solo lectura!!

ZeRoberto

unread,
Nov 22, 2018, 12:08:46 PM11/22/18
to publice...@googlegroups.com
Donde se encuentra grabado ese archivo en C: D: o? como dice Marcos Godoy talvez el archivo que quieres abrir lo tienes incluido en el Exe

Saludos



Gustavo Rojo

unread,
Nov 22, 2018, 12:21:30 PM11/22/18
to Comunidad de Visual Foxpro en Español
Hola, no, no esta incluido, esta en una carpeta en c:\, hay voy guardando cada archivo generado y/o modificado, cada pedido, tiene un archivo txt de control.
Realmente no le encuentro la vuelta....

El jueves, 22 de noviembre de 2018, 12:16:15 (UTC-3), ZeRoberto escribió:

ZeRoberto

unread,
Nov 22, 2018, 12:24:18 PM11/22/18
to publice...@googlegroups.com
Dime cuando te funciona bien en tiempo de ejecucion ese txt lo coges del c: tambien o lo tienes en la carpeta raiz de tu proyecto

Saludos



ZeRoberto

unread,
Nov 22, 2018, 12:25:47 PM11/22/18
to publice...@googlegroups.com
Tal vez sea problemas de permiso de archivos que Windows tienes? 10? 7?

Gustavo Rojo

unread,
Nov 22, 2018, 12:59:59 PM11/22/18
to Comunidad de Visual Foxpro en Español
En modo diseño (desarrollo), lo creo, lo abro, lo modifico, lo proceso, todo desde una carpeta en c:\..., etc, sin problemas... cuando compilo y ejecuto el .exe, deja de funcionar y se comporta como les conte.
Estoy trabajando en un equipo con W10 y VFP9 SP2

Fidel Charny

unread,
Nov 22, 2018, 3:03:11 PM11/22/18
to Comunidad de Visual Foxpro en Español
Aquí de dejo un procedure de prueba, con una idea algo distinta, pero que me resulta más controlable (si es que entendí tu necesidad, claro)

PROCEDURE GROJO

TRY
    LOCAL LOEX AS EXCEPTION
,;
        LCMESSAGE
,;
        lnHandle
,;
        lcRazonSocial
,;
        lcFigurate_Path
,;
        lcFigurate_Fecha
,;
        lcFigurate_Name_File
,;
        lcString

   
*<Datos Inventados>
    lcRazonSocial
= "López Juarez S.A."
    lcFigurate_Path
= ADDBS(FULLPATH(""))+"Temp"
    lcFigurate_Fecha
= TTOC(DATETIME(2018,11,21,15,32,12),1)
    lcFigurate_Name_File
= FORCEEXT(ADDBS(m.lcFigurate_Path)+m.lcFigurate_Fecha+m.lcRazonSocial,"txt")
   
*<Datos Inventados>
   
    IF
!FILE(m.lcFigurate_Name_File)
       
*<Creación archivo inventado>
       
* Esto es solo para pruebas.
        lnHandle
= FCREATE(m.lcFigurate_Name_File)
        IF m
.lnHandle < 0
            lcMessage
= "No pudo crearse el archivo "+m.lcfigurate_Name_file
        ELSE
           
= FPUTS(m.lnHandle, "0001332101,Producto1")
           
= FPUTS(m.lnHandle, "0001632302,Producto2")
           
= FPUTS(m.lnHandle, "0020638305,Producto3")
           
= FCLOSE(m.lnHandle)
        ENDIF
       
*</Creación archivo inventado>
    ENDIF

   
*<Lectura del archivo>
    lcString
= ""
    IF FILE
(m.lcFigurate_Name_file)
        lcString
= FILETOSTR(m.lcFigurate_name_File)
    ENDIF
   
*</Lectura del archivo>    
   
   
*<Agrega una propiedad de Screen>
    ADDPROPERTY
(_Screen,"cString_Control",m.lcString)
   
*</Agrega una propiedad de Screen>
   
   
*<Crea formulario>
    loForm
= NEWOBJECT("Form")
    WITH loForm
       
.Caption = m.lcRazonSocial+CHR(32)+CHR(187)+CHR(32)+"Control Pedido"
       
.BackColor = 14607069
       
.Height = FLOOR(_screen.Height / 2)
       
.width = FLOOR(_screen.Width / 2)
       
.autocenter = .t.
    ENDWITH
    loForm
.Newobject("edt_Control","Editbox")

    WITH loForm
       
.edt_Control.Width = .width - 8
       
.edt_Control.Height = .Height - 8
       
.Edt_control.Top = 4
       
.edt_Control.left = 4
       
.edt_Control.FontName = "Courier New"
       
.edt_Control.FontSize = 10
       
.edt_Control.ControlSource = "_screen.cSTring_Control"
       
.edt_Control.Visible = .t.
    ENDWITH
   
*</Crea formulario>
   
   
    loForm
.Show(1)

    IF _screen
.cString_Control == m.lcString
       
* Nada
    ELSE
        STRTOFILE
(_screen.cString_Control,m.lcFigurate_Name_File)
        lcMessage
= "Archivo de Control Actualizado"
    ENDIF
   
CATCH TO LOEX
    LOEX
.USERVALUE = PROGRAM()
   
*SHOWERROR(LOEX)    && rutina que muestra el error

FINALLY
    IF VARTYPE
(loForm)="O"
        loForm
.Release()
    ENDIF
    loForm
= null
    IF PEMSTATUS
(_screen,"cString_Control",5)
        REMOVEPROPERTY
(_Screen,"cString_Control")
    ENDIF
    IF
!EMPTY(m.lcMessage)
        MESSAGEBOX
(m.lcMessage,0,LOWER(PROGRAM()),1000)
    ENDIF  
   
ENDTRY    

ENDPROC
Obviamente puedes recurrir a una clase basada en Editbox y resolver el formulario de otra forma que no sea con una propiedad del _Screen, cosa un tanto torpe, aunque práctica.
Para el ejemplo, simplifiqué el nombre del archivo, basándome en TTOC(Datetime(),1), en lugar de todo ese encadenado de Padl(), y por supuesto, el path es el que me conviene (je, je).

Gustavo Rojo

unread,
Nov 22, 2018, 7:06:14 PM11/22/18
to Comunidad de Visual Foxpro en Español
Hola Fidel, muchas gracias por tu aporte, lo voy a analizar, seguramente me sirva.
Igualmente me gustaria saber donde tengo el error en mi codigo, ya que desarrollando funciona perfectamente y luego de compilar ya no....

ZeRoberto

unread,
Nov 22, 2018, 7:37:07 PM11/22/18
to publice...@googlegroups.com
No entiendo muy bien, al hacer un FOPEN desde tu exe no puedes mostrar los datos del archivo o simplemente se demora un rato, ahi veo que pusiste un IF gnErrFile < 0  sabes si entra al error?, porque si FOPEN te devuelve 7 significa que abrio el archivo en la posicion 7 presiona CTRL+ALT+DEL y fijate si tu exe no se quedo pegado en la memoria, tambien prueba cerrar todo el VFP antes de ejecutar tu ejectuable.

Saludos



syscontri EC

unread,
Nov 22, 2018, 7:39:27 PM11/22/18
to publice...@googlegroups.com
Tienes que usar necesariamente fopen()?

Y si usas filetostr()?

Gustavo Rojo

unread,
Nov 22, 2018, 7:56:34 PM11/22/18
to Comunidad de Visual Foxpro en Español
ZeRoberto, como tu dices, el archivo se abre y no genera error, por eso pasa de largo la consulta IF gnErrFile < 0, se esta deteninedo en el MODIFY FILE (archivo)... aca me congela el formulario y no hace mas nada...

Gustavo Rojo

unread,
Nov 22, 2018, 7:58:07 PM11/22/18
to Comunidad de Visual Foxpro en Español
Hola syscontri! uso fopen en caso de que el archivo ya exista, no conocia la funcion que mencionas... para que sirve?

ZeRoberto

unread,
Nov 22, 2018, 7:59:17 PM11/22/18
to publice...@googlegroups.com
Pero creo que no se puede hacer modi file si el archivo esta abierto porque no le haces un FGET() y muestras los datos que te retorna

Saludos



ZeRoberto

unread,
Nov 22, 2018, 8:00:52 PM11/22/18
to publice...@googlegroups.com
En vez de hacer un Modi File haz esto

*** TEST.TXT must exist ***

STORE FOPEN('test.txt') TO gnFileHandle    && Open the file

STORE FSEEK(gnFileHandle, 0, 2) TO gnEnd    && Move pointer to EOF

STORE FSEEK(gnFileHandle, 0) TO gnTop     && Move pointer to BOF

IF gnEnd <= 0  && Is file empty?

   WAIT WINDOW 'This file is empty!' NOWAIT

ELSE  && If not

   gcString = FGETS(gnFileHandle, gnEnd)  && Store contents

   ? gcString

ENDIF

= FCLOSE(gnFileHandle)  && Close the file

Gustavo Rojo

unread,
Nov 22, 2018, 8:06:27 PM11/22/18
to Comunidad de Visual Foxpro en Español
Uso el modify file para manejar la edision de forma interactiva (me abre el notepad).... el fget() no me abre el notepad....

syscontri EC

unread,
Nov 22, 2018, 8:09:02 PM11/22/18
to publice...@googlegroups.com
Funciona así:

A=filetostr("c:\archivo.txt")

El contenido del archivo pasa a la variable.

ZeRoberto

unread,
Nov 22, 2018, 8:11:49 PM11/22/18
to publice...@googlegroups.com
Haber prueba haciendo un FCLOSE() antes del MODI FILE

Saludos



Gustavo Rojo

unread,
Nov 22, 2018, 8:15:58 PM11/22/18
to Comunidad de Visual Foxpro en Español
Claro, pero lo que necesito es manejar la edision de forma interactiva....
El pseudocodigo de mi proceso seria asi:

1 Busco el archivo
2 Si exite, lo abro sino, lo creo
3 Levanto el notepad (modify file (archivo))
4 Espero la descarga de datos del escaner
5 Guardo y cierro el archivo
6 Proceso el contenido

Actualmente se esta colgando en la ejecucion del Modify file (archivo), esto me abre el archivo en el notepad...

ZeRoberto

unread,
Nov 22, 2018, 8:18:02 PM11/22/18
to publice...@googlegroups.com
No entiendo, si lo vas a editar por el comando Modi File porque lo abres con el FOPEN()

Saludos



syscontri EC

unread,
Nov 22, 2018, 8:27:08 PM11/22/18
to publice...@googlegroups.com

A=filetostr("c:\archivo.txt")

A="contenido nuevo"

strtofile(a,"c:\archivo.txt") &&& creo q en ese orden


Así abres el texto, editas y sobreescribes.

Gustavo Rojo

unread,
Nov 22, 2018, 8:35:05 PM11/22/18
to Comunidad de Visual Foxpro en Español
Claro, es un erro, limpie el codigo para analizar mejor el problema...

archivo = 'C:\Atilio\Pedido.txt'
IF FILE(archivo) 
    MODIFY FILE (archivo)
  ELSE
    gnErrFile = FCREATE(archivo) 
    IF gnErrFile < 0 
        WAIT 'Error, no se pudo crear el archivo' WINDOW
      ELSE
          =FCLOSE(gnErrFile)
          MODIFY FILE (archivo)
    ENDIF
ENDIF

Este codifo, en entorno de desarrollo, funciona perfecto, lo compilo y al ejecutar se clava en el MODIFY FILE... y no muestra error ni nada...

ZeRoberto

unread,
Nov 22, 2018, 8:39:49 PM11/22/18
to publice...@googlegroups.com
No necesitas ni hacer un FILE() porque el Modi File al no existir el archivo te lo crea eso siempre y cuando des un CTRL+W al final

Saludos



ZeRoberto

unread,
Nov 22, 2018, 8:48:42 PM11/22/18
to publice...@googlegroups.com
Si se sigue atascando en el MODIFY FILE entonces prueba copiando las carpetas de los txt al D:\

Loca lcFileName
lcFileName = "D:\Archivos\mi archivo de pruebas.txt"
MODIFY FILE (lcFileName)


Saludos



Gustavo Rojo

unread,
Nov 22, 2018, 8:54:10 PM11/22/18
to Comunidad de Visual Foxpro en Español
Perfecto, ahora con solo estas dos lineas

archivo = 'C:\Atilio\Pedido2.txt'
MODIFY FILE (archivo)

Tengo el mismo resultado, en modo desarrollo funciona ok, lo compilo y no funciona... me esta volviendo loco....


ZeRoberto

unread,
Nov 22, 2018, 8:57:05 PM11/22/18
to publice...@googlegroups.com
Puede que sean varias cosas 

1.- Que el archivo este bloqueado
2.- Que el antivirus te este bloqueando

Primero reinicia tu PC, y luego pruebas corriendo tu exe, si sigue dando el mismo error, copia o crea una carpeta en d:\ solo para descartar y haces pruebas con los archivos de la unidad D:\, si aun asi sigue dando error prueba desactivando tu antivirus.

Saludos





Gustavo Rojo

unread,
Nov 22, 2018, 9:07:02 PM11/22/18
to Comunidad de Visual Foxpro en Español
ZeRoberto, realice las pruebas que me recomendaste sin tener buenos resultados, sigue sin funcionar....
Voy a probar en otro equipo con otro Windows, ya no se por donde revisar... mañana les cuento como me va, es un sistema que esta funcionando y necesito meter esta actualizacion cuanto antes...

Desde ya muchas gracias por la colaboracion!!!

WP-Developers

unread,
Nov 22, 2018, 10:56:36 PM11/22/18
to publice...@googlegroups.com
imagen.png

ZeRoberto

unread,
Nov 22, 2018, 10:59:03 PM11/22/18
to publice...@googlegroups.com
Porque no creas un formulario y le pones un RitchEdit y ahi lo editas luego creas un boton para guardar

Saludos


Hugo C.

unread,
Nov 22, 2018, 11:54:25 PM11/22/18
to Comunidad de Visual Foxpro en Español
Intenta corriendo el exe como administrador

Saludos

HernanCano

unread,
Nov 23, 2018, 12:11:37 AM11/23/18
to Comunidad de Visual Foxpro en Español
Gustavo:
intenta con ésta modificación y nos cuentas.

archivo = 'C:\Atilio\Pedido.txt'
on error

IF FILE(archivo)  
    MODIFY FILE (archivo)
  ELSE
    gnErrFile = FCREATE(archivo)  
    IF gnErrFile < 0  
        WAIT 'Error, no se pudo crear el archivo' WINDOW 
      ELSE 
          =FCLOSE(gnErrFile)

Gustavo Rojo

unread,
Nov 23, 2018, 7:31:22 AM11/23/18
to Comunidad de Visual Foxpro en Español
Hola wpalomo, implemete tu solucion pero recibo el mismo resultado, no funciona cuando ejecuto el .exe, gracias de todos modos.

Gustavo Rojo

unread,
Nov 23, 2018, 7:32:17 AM11/23/18
to Comunidad de Visual Foxpro en Español
Hola HernanCano, hice la modificacion que indicas, pero sigue sin funcionar... gracias!

Edwin Duran

unread,
Nov 23, 2018, 9:19:39 AM11/23/18
to Comunidad de Visual Foxpro en Español
Saludos

Puedes dar mas detalle para ver si se puede buscar otra alternativa, realmente para qué utilizas el MODIFY FILE, qué datos guardar, etc.

 

El miércoles, 21 de noviembre de 2018, 15:58:46 (UTC-4), Gustavo Rojo escribió:
Estimados, necesitaria una mano urgente con este tema.

Tengo este procedimiento en un boton de un formulario:

archivo = 'Pedido21112018155100GUSTAVO ROJO.txt' (este dato es dinamico y lo genero a partir de un datetime del formualrio)
IF FILE(archivo) 
    gnErrFile = FOPEN(archivo) 
  ELSE
    gnErrFile = FCREATE(archivo) 
ENDIF

IF gnErrFile < 0 
    WAIT 'Error, no se pudo abrir o crear el archivo' WINDOW
ENDIF

=FCLOSE(gnErrFile )

IF gnErrFile > 0
    MODIFY FILE (archivo)
     =messagebox('Aca comienxo el proceso del archivo',48,'TXT')
endif

Esto funciona bien en modo de desarrollo, cuando compilo el .exe, no funciona, le coloque un WAIT luego del "gnErrFile = FOPEN(archivo) " y me muestra un 7...
no se por donde buscar el error, agradeceria que me puedan ayudar.

Desde ya muchas gracias.

William López

unread,
Nov 23, 2018, 9:25:33 AM11/23/18
to Comunidad de Visual Foxpro en Español

Posiblemente, el problema pueda estar en el notepad con el que lo quieres abrir para modificarlo. Yo he probando con el editor de VFP y no hay problema con el EXE.

Gustavo Rojo

unread,
Nov 23, 2018, 9:34:00 AM11/23/18
to Comunidad de Visual Foxpro en Español
Hola Edwin!

ya logre una verion funcional con este codigo:

LOCAL lcFile
lcFile="C:\Atilio\Pedidos2.txt"
IF FILE(lcFile)
    o = CREATEOBJECT("Shell.Application")
    o.ShellExecute("notepad.exe", '&LcFile', "", "open", 1)   
  ELSE
      RETURN
ENDIF

Esto funciona bien, ahora el problema lo tengo en que pierdo el control de cuando se cierra el objeto que contiene el notepad, como podria solucionarlo? para poder continuar con el proceso una vez cerrado el notepad....

Gustavo Rojo

unread,
Nov 23, 2018, 9:35:52 AM11/23/18
to Comunidad de Visual Foxpro en Español
Hola William, me darias un ejemplo de uso con el editor de VFP por favor?

ZeRoberto

unread,
Nov 23, 2018, 10:14:06 AM11/23/18
to publice...@googlegroups.com
Create un formulario con el activex RichText y ahí lo editas.


Saludos 

Edwin Duran

unread,
Nov 23, 2018, 10:37:20 AM11/23/18
to Comunidad de Visual Foxpro en Español

William López M.

unread,
Nov 23, 2018, 10:46:34 AM11/23/18
to publice...@googlegroups.com
hice un ejercicio sencillo y te lo anexo, cambia la extensión .e por .exe y el archivo con el que probé se llama: ejemplo.BAK
que tiene tres lineas de texto

William López M.

prue_fileopen.PJT
prue_fileopen.prg
prue_fileopen.FXP
prue_fileopen.pjx
prue_fileopen.e

Zarlu

unread,
Nov 23, 2018, 11:07:50 AM11/23/18
to Comunidad de Visual Foxpro en Español
Buenas días Gustavo Rojo!
 
Ya probé tu código en ejecutable y si funciona... PEROOOOO....siempre y cuando no se restrinja la salida al screen de vfp.
Lo que me hace deducir que al ejecutar  "MODIFY FILE (archivo) no encuentra salida por estar screen=off.
Por eso es que funciona en modo de desarrollo, pero no con el ejecutable.
 
No logro dirigir la salida a un formulario...sgo intentando y espero que sea una pista para lograrlo.
 
(Hay otras maneras de hacerlo sin el "MODIFY FILE()", pero veamos si hay solución usando éste comando)
 
Suerte. y comenta
Zarlu
Chetumal, Quintana Roo, México
 
 
 
 
La situación es que  "MODIFY FILE (archivo)" no está encontrando salida para visualizarse porque
 

Zarlu

unread,
Nov 23, 2018, 11:50:06 AM11/23/18
to Comunidad de Visual Foxpro en Español
Gustavo Rojo, buenos días de nuevo!
 
Listo!! (y probado) 
 
En tu archivo config.fpw inserta la siguiente línea:
TEDIT =/n notepad
(al archivo config.fpw debe estar en el mismo lugar de tu ejecutable. Sino lo tienes crea un archivo de texto y guardalo con ese nombre y extension)
 
Te dejo tambien un link que quizá podría atyudarte en la inclusión del editor en tu formulario:
 
Suerte

Gustavo Rojo

unread,
Nov 23, 2018, 1:25:32 PM11/23/18
to Comunidad de Visual Foxpro en Español
Zarlu! sos un genio! funciono perfectamente mi codigo original, con el agregado de la linea en el config.fpw.
Mil gracias a vos y a todos los que se interesaron en darme una mano.

Abrazo!

HernanCano

unread,
Nov 23, 2018, 11:58:04 PM11/23/18
to Comunidad de Visual Foxpro en Español
Gustavo:
Lo más probable es evidentemente que siga sin funcionar.

La idea es que se pueda saber cuál es el mensaje de error.

Por si no entendiste mi mensaje, el objetivo es éste:

Ejecuta con la modificación propuesta.
Va a aparecer un mensaje de error.
Cuando veas el mensaje de error, lo anotas (o le tomas una foto -- con la tecla Print Screen o con el celular--) y nos dices cuál es ese mensaje de error.


--------------------------------------------------------
Aquí va....
una propuesta más robusta.......



archivo = 'C:\Atilio\Pedido.txt'
on error
IF FILE(archivo)  
   MODIFY FILE (archivo)
ELSE
   gnErrFile = FCREATE(archivo)  
   IF gnErrFile < 0  
      WAIT WINDOW 'Error, no se pudo crear el archivo'+chr(13)+archivo nowait
      MessageBox(RetFError(ferror())+chr(13)+archivo)
   ELSE 
      =FCLOSE(gnErrFile)
      MODIFY FILE (archivo)
   ENDIF
ENDIF

*!------------------------------------------------------------!
*!   Procedure Name: RETFERROR                                !
*!   Function      : Return error description on last         !
*!                    low-level file operation.               !
*!   Parameters:                                              !
*!      tnErrNo = low-level file error number.                !
*!------------------------------------------------------------!
function RetFError
lparameter tnErrNo
do case
case tnErrNo=00  &&
   return       [00. No problem!!]
case tnErrNo=02  &&  File not found
   return       [02. Archivo no encontrado]
case tnErrNo=04  &&  Too many files open (out of handles)
   return       [04. Demasiados archivos abiertos (out of handles)]
case tnErrNo=05  &&  File access denied
   return       [05. Acceso denegado]
case tnErrNo=06  &&  Invalid file handle given
   return       [06. Controlador de archivo dado no válido]
case tnErrNo=08  &&  Out of memory.
   return       [08. No hay memoria suficiente]
case tnErrNo=25  &&  Seek error (can't seek before the start of a file)
   return       [25. Error de búsqueda (no se busca antes del comienzo de un archivo)]
case tnErrNo=29  &&  Insufficient disk space
   return       [29. Disco lleno]
case tnErrNo=31  &&  General failure (EOF encountered)
   return       [31. Error abriendo archivo (general failure: EOF encountered)]
otherwise
   return [<Error I/O no definido>]
endcase

**

HernanCano

unread,
Nov 24, 2018, 12:04:07 AM11/24/18
to Comunidad de Visual Foxpro en Español
Acabo de ver que resolviste.....

Bien.....

ZeRoberto

unread,
Nov 24, 2018, 12:04:17 AM11/24/18
to publice...@googlegroups.com
Hernan ya soluciono su problema

Saludos



Reply all
Reply to author
Forward
0 new messages