Fecha actual Vie May 17, 2024 2:11 am

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 7 mensajes ] 
Autor Mensaje
NotaPublicado: Vie Jul 20, 2007 3:06 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Hola a todos
Tengo un proyecto con dos formularios y un modulo donde tengo dos funciones(leer INI y grabar INI)
Quiero que al cargarse la aplicacion lea el fichero INI, lo hago desde el formulario principal en el evento OnCreate intento leer el INI llamando a la funcion pero al ejecutar el programa aparece:
Error BASE/1003 No existe la variable: SELF, llamado precesimante en la linea que hace referencia a la funcion TRAEINI
Como solucion copio las lineas de la funcion TraeIni en el evento OnCreate y funciona

Se admiten sugerencias

Un saludo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Jul 23, 2007 10:40 am 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Amable,

Cometes el error de usar Self desde una función, Self o :: sólo están disponibles desde métodos. Aunque hagas la llamadas desde un método, si saltas a una función, TraeIni en tu caso, desde dentro de ella ya no puedes usar Self, a menos que lo pases como parámetro desde el método.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Jul 23, 2007 12:29 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Bruno escribió:
Amable,

Cometes el error de usar Self desde una función, Self o :: sólo están disponibles desde métodos. Aunque hagas la llamadas desde un método, si saltas a una función, TraeIni en tu caso, desde dentro de ella ya no puedes usar Self, a menos que lo pases como parámetro desde el método.


Hola Bruno
Perdona pero no entiendo lo que que me dices.
Utilizo el IDE, la funcion esta declarada en el modulo.prg como
FUNCTION TraeIni()
...
Return Nil

La invoco como TraeIni() desde el evento OnCreate del formulario Form.prg, la variable Self la debe generar el IDE.
Curiosamente solamente me falla en ese punto, despues ya funciona.
Un saludo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Jul 23, 2007 5:48 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Amable,

En la función TraeIni() defines una variable local llamada oIniFile y luego la usas así:

PathO := ::oIniFile:ReadString( "DATOS","patho", "C:\")

Observa que le pones :: delante de oIniFile. Para poder usar esto oIniFile debe ser un objeto del formulario no una variable local.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
NotaPublicado: Lun Jul 23, 2007 10:00 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Gracias Bruno
Vengo de clipper 5.1 y me está costando la sintaxis de C3
Finalmente tengo ya el programa:
Su finalidad es coger varios ficheros
Juntarlo en uno y hacer copias
Deberia borrar los ficheros originales pero me falla

En el mismo programa utilizo:
Fichero ini
Impresion de bitmap
Acceso a ficheros binarios

Un saludo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Jul 26, 2007 5:00 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Hola

Si alguno ha intentado aprovechar las funciones de grabar ficheros de este ejemplo, me tendrá que disculpar, los codigos de fin de registro los puse al reves la forma correcta es CHR(13)+CHR(10), desde windows no se nota pero con una aplicacion cobol no se reconoce el fin de registro y la lia.

Sigo sin encontrar la forma de que borre los ficheros al final del proceso, parece que la función DIRECTORY los bloquea.

Un saludo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Jul 26, 2007 5:28 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Hola otra vez
El demonio este no borra los ficheros porque la funtion lImporte no cierra los ficheros con Fclose que habia abierto con Fread.

Esto es culpa de Bruno, que permite que se habran infinidad de ficheros sin dar error, con clipper si querias abrir mas de 10 habia que empezar con files=40 y buffer=30

Brruno, esto ultimo es broma, gracias por este estupendo compilador

Adjunto el programa corregido este bug, creo que ya no quedan

Un saludo


Adjuntos:
Tpv505.zip [9.55 KiB]
390 veces
Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 7 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron