Página 1 de 1

Curdrive() HB_Curdrive()

Publicado: Mié Dic 05, 2012 10:32 am
por XeviCOMAS
Estoy teniendo problemas con Harbour... por culpa de esta función.
Si bien HB_Curdrive() funciona correctamente cuando se trata de una unidad
lógica o virtual, no pasa lo mismo cuando se trata de un acceso directo
apuntando a un equipo de red.
A ver si me explico.
Cuando localmente solicitamos HB_Curdrive... todo correcto, devuelve la
letra de la unidad.
Cuando tenemos un acceso directo que apunta a una unidad de red...
"X:MiCarpetaMiAplicacion.exe"... todo continua correcto, devuelve la letra
"X" correctamente.
El problema está en si ese acceso directo apunta a un equipo de red sin
unidad asignada...
"MiEquipoMiCarpetaMiAplicacion.exe"
Aquí, CurDrive de xHarbour devuelve ""... lo veo lógico, ¿No???
PERO, HB_Curdrive devuelve "A" ¿?¿? y eso???
Sabiendo eso, lo puedo sortear y si me devuelve "A"... le cambio por "",
pero no encuentro que el resultado devuelto por HB_CurDrive sea el correcto,
no creeis????
Un Saludo,
Xevi.
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7765 (20121204) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com

Curdrive() HB_Curdrive()

Publicado: Mié Dic 05, 2012 2:00 pm
por jlalin
Xevi,
¿has probado con CurDrive() (sin el prefijo HB_) de Harbour directamente?
Saludos,
José Lalí­n

Curdrive() HB_Curdrive()

Publicado: Mié Dic 05, 2012 5:46 pm
por XeviCOMAS
José,
la función Curdrive() no existe en Harbour...
Es una de mis primeras preguntas al migrar de xHb a Hb... y que la solución
pasó por utilizar HB_CurDrive()
Un Saludo,
Xevi.
"José Lalín" <dezac@corevia.com> ha escrit al missatge del grup de
discussió: 50bf44e9$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Xevi,
¿has probado con CurDrive() (sin el prefijo HB_) de Harbour directamente?
Saludos,
José Lalín
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 7767 (20121205) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7767 (20121205) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com

Curdrive() HB_Curdrive()

Publicado: Mié Dic 05, 2012 6:58 pm
por jlalin
Xevi,
se me fue la pinza con el nombre de la función... Prueba con FileDrive(
CurDir() ).
Saludos,
José Lalí­n

Curdrive() HB_Curdrive()

Publicado: Mié Dic 05, 2012 7:35 pm
por XeviCOMAS
José,
No funciona... devuelve una cadena vacía.
cCurDrive := FileDrive( CurDir() )
MsgInfo( cCurDrive )
Normal.. CurDir() devuelve MiOrdenadorMiCarpeta"
No hay problema... lo soluciono con...
#ifdef __XHARBOUR__
cCurDrive := CurDrive()
#else
cCurDrive := HB_CurDrive()
If( cCurDrive = "A", cCurDrive := "", )
#endif
Sólo que no me parece normal que tratándose de un enlace a un equipo de red,
devuelva una letra de unidad que no se corresponde...
Un Saludo,
Xevi.
"José Lalín" <dezac@corevia.com> ha escrit al missatge del grup de
discussió: 50bf8ab6$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Xevi,
se me fue la pinza con el nombre de la función... Prueba con FileDrive(
CurDir() ).
Saludos,
José Lalín
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 7767 (20121205) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7767 (20121205) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com

Curdrive() HB_Curdrive()

Publicado: Mié Dic 05, 2012 7:55 pm
por jlalin
Xevi,
> If( cCurDrive = "A", cCurDrive := "", )
El que devuelva la "A" me parece más un bug (viendo el código) que otra cosa.
Prueba estas: HB_ProgName() y HB_BaseDir(). Parece que devuelven la ruta
del ejecutable y quizás estas devuelvan la letra de la unidad correctamente
en todos los casos.
Saludos,
José Lalí­n

Curdrive() HB_Curdrive()

Publicado: Jue Dic 06, 2012 12:45 am
por XeviCOMAS
José,
HB_BaseDir() serà que no existe en Harbour...
Compilant Comandes.prg...
Enllaçant GWin.exe...
Error: Unresolved external '_HB_FUN_HB_BASEDIR' referenced from
X:XEVIXAILERGWINOBJCOMANDES.OBJ
1 Files, 0 Warnings, 1 Errors
Temps de compilació: 2.76s Temps d'enllaçat: 5.62s Temp total: 9.45s
HB_ProgName() seria casi perfecto!!!
Devuelve unidad correcta o "" si es red, ruta y nombre fichero.
Necesito SOLO unidad y ruta... sin el nombre del fichero!!!
Tendré que "cortar" y quedarme unidad y ruta... ¿asi???
Left( HB_ProgName(), RAt( "", HB_ProgName() ) -1 )
Aunque lo tenía resuelto, veo que es mejor opción... aunque sigo creiendo
que es un bug de la función HB_Curdrive()
Un Saludo,
Xevi.
"José Lalín" <dezac@corevia.com> ha escrit al missatge del grup de
discussió: 50bf97f4$[email=2@svctag-j7w3v3j....]2@svctag-j7w3v3j....[/email]
Xevi,
> If( cCurDrive = "A", cCurDrive := "", )
El que devuelva la "A" me parece más un bug (viendo el código) que otra
cosa.
Prueba estas: HB_ProgName() y HB_BaseDir(). Parece que devuelven la ruta
del ejecutable y quizás estas devuelvan la letra de la unidad correctamente
en todos los casos.
Saludos,
José Lalín
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 7770 (20121205) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7770 (20121205) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com

Curdrive() HB_Curdrive()

Publicado: Jue Dic 06, 2012 9:48 am
por jlalin
Xevi,
prueba con la nativa de Xailer: FilePath( HB_ProgName() )
Saludos,
José Lalí­n

Curdrive() HB_Curdrive()

Publicado: Jue Dic 06, 2012 2:19 pm
por jasm.quitaesto
Hola
¿Damos con una solución para este galimatí­as del CurDrive()?
Se me ocurre hacer una función sustitutiva y meterla en nuestros proyectos:
FUNCTION CurDrive()
RETURN Left( FilePath( HB_ProgName() ), 1 )
Saludos
Alf+.
El 05/12/2012 10:32, Xevi escribió:
> Estoy teniendo problemas con Harbour... por culpa de esta función.
>
> Si bien HB_Curdrive() funciona correctamente cuando se trata de una unidad
> lógica o virtual, no pasa lo mismo cuando se trata de un acceso directo
> apuntando a un equipo de red.
>
> A ver si me explico.
> Cuando localmente solicitamos HB_Curdrive... todo correcto, devuelve la
> letra de la unidad.
> Cuando tenemos un acceso directo que apunta a una unidad de red...
> "X:MiCarpetaMiAplicacion.exe"... todo continua correcto, devuelve la letra
> "X" correctamente.
>
> El problema está en si ese acceso directo apunta a un equipo de red sin
> unidad asignada...
> "MiEquipoMiCarpetaMiAplicacion.exe"
>
> Aquí­, CurDrive de xHarbour devuelve ""... lo veo lógico, ¿No???
> PERO, HB_Curdrive devuelve "A" ¿?¿? y eso???
>
> Sabiendo eso, lo puedo sortear y si me devuelve "A"... le cambio por "",
> pero no encuentro que el resultado devuelto por HB_CurDrive sea el correcto,
> no creeis????
>
>
> Un Saludo,
> Xevi.
>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7765 (20121204) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
>

Curdrive() HB_Curdrive()

Publicado: Jue Dic 06, 2012 4:25 pm
por XeviCOMAS
José Alfonso...
Hecho!!
#ifdef __HARBOUR__
FUNCTION CurDrive()
RETURN Left( FilePath( HB_ProgName() ), 1 )
#endif
Asunto arreglado!!!
Un Saludo,
Xevi.
"José Alfonso Suárez Moreno" <jasm.quitaesto@tpvsoft.com> ha escrit al
missatge del grup de discussió: [email=50c09ba1@svctag-j7w3v3j....]50c09ba1@svctag-j7w3v3j....[/email]
> Hola
>
> ¿Damos con una solución para este galimatías del CurDrive()?
>
> Se me ocurre hacer una función sustitutiva y meterla en nuestros
> proyectos:
>
> FUNCTION CurDrive()
> RETURN Left( FilePath( HB_ProgName() ), 1 )
>
> Saludos
>
> Alf+.
>
> El 05/12/2012 10:32, Xevi escribió:
>> Estoy teniendo problemas con Harbour... por culpa de esta función.
>>
>> Si bien HB_Curdrive() funciona correctamente cuando se trata de una
>> unidad
>> lógica o virtual, no pasa lo mismo cuando se trata de un acceso directo
>> apuntando a un equipo de red.
>>
>> A ver si me explico.
>> Cuando localmente solicitamos HB_Curdrive... todo correcto, devuelve la
>> letra de la unidad.
>> Cuando tenemos un acceso directo que apunta a una unidad de red...
>> "X:MiCarpetaMiAplicacion.exe"... todo continua correcto, devuelve la
>> letra
>> "X" correctamente.
>>
>> El problema está en si ese acceso directo apunta a un equipo de red sin
>> unidad asignada...
>> "MiEquipoMiCarpetaMiAplicacion.exe"
>>
>> Aquí, CurDrive de xHarbour devuelve ""... lo veo lógico, ¿No???
>> PERO, HB_Curdrive devuelve "A" ¿?¿? y eso???
>>
>> Sabiendo eso, lo puedo sortear y si me devuelve "A"... le cambio por "",
>> pero no encuentro que el resultado devuelto por HB_CurDrive sea el
>> correcto,
>> no creeis????
>>
>>
>> Un Saludo,
>> Xevi.
>>
>>
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>> firmas de virus 7765 (20121204) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 7773 (20121206) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7773 (20121206) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com

Curdrive() HB_Curdrive()

Publicado: Vie Dic 07, 2012 10:04 am
por XeviCOMAS
Al compilar el proyecto con xharbour me da error al compilar... por lo que
la dejo así...
#ifdef __XHARBOUR__
#else
FUNCTION CurDrive()
RETURN Left( FilePath( HB_ProgName() ), 1 )
#endif
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> ha escrit al missatge del grup de discussió:
50c0b8ef$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> José Alfonso...
>
> Hecho!!
> #ifdef __HARBOUR__
> FUNCTION CurDrive()
> RETURN Left( FilePath( HB_ProgName() ), 1 )
> #endif
>
> Asunto arreglado!!!
>
>
> Un Saludo,
> Xevi.
>
>
> "José Alfonso Suárez Moreno" <jasm.quitaesto@tpvsoft.com> ha escrit al
> missatge del grup de discussió: [email=50c09ba1@svctag-j7w3v3j....]50c09ba1@svctag-j7w3v3j....[/email]
>> Hola
>>
>> ¿Damos con una solución para este galimatías del CurDrive()?
>>
>> Se me ocurre hacer una función sustitutiva y meterla en nuestros
>> proyectos:
>>
>> FUNCTION CurDrive()
>> RETURN Left( FilePath( HB_ProgName() ), 1 )
>>
>> Saludos
>>
>> Alf+.
>>
>> El 05/12/2012 10:32, Xevi escribió:
>>> Estoy teniendo problemas con Harbour... por culpa de esta función.
>>>
>>> Si bien HB_Curdrive() funciona correctamente cuando se trata de una
>>> unidad
>>> lógica o virtual, no pasa lo mismo cuando se trata de un acceso directo
>>> apuntando a un equipo de red.
>>>
>>> A ver si me explico.
>>> Cuando localmente solicitamos HB_Curdrive... todo correcto, devuelve la
>>> letra de la unidad.
>>> Cuando tenemos un acceso directo que apunta a una unidad de red...
>>> "X:MiCarpetaMiAplicacion.exe"... todo continua correcto, devuelve la
>>> letra
>>> "X" correctamente.
>>>
>>> El problema está en si ese acceso directo apunta a un equipo de red sin
>>> unidad asignada...
>>> "MiEquipoMiCarpetaMiAplicacion.exe"
>>>
>>> Aquí, CurDrive de xHarbour devuelve ""... lo veo lógico, ¿No???
>>> PERO, HB_Curdrive devuelve "A" ¿?¿? y eso???
>>>
>>> Sabiendo eso, lo puedo sortear y si me devuelve "A"... le cambio por
>>> "",
>>> pero no encuentro que el resultado devuelto por HB_CurDrive sea el
>>> correcto,
>>> no creeis????
>>>
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>>
>>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>>> firmas de virus 7765 (20121204) __________
>>>
>>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>>
>>> http://www.eset.com
>>>
>>>
>>>
>>>
>>
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>> firmas de virus 7773 (20121206) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 7773 (20121206) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 7774 (20121206) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7774 (20121206) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com

Curdrive() HB_Curdrive()

Publicado: Vie Dic 07, 2012 5:30 pm
por jlalin
Xevi,
> Al compilar el proyecto con xharbour me da error al compilar... por lo que
> la dejo así­...
Así­ "escondes" el problema hasta que con Harbour o alguna librerí­a que en
uses en el futuro y tenga la misma función te pase lo mismo.
Cambia el nombre por XE_CurDrive o lo que prefieras y así­ lo solucionas
definitivamente.
Saludos,
José Lalí­n

Curdrive() HB_Curdrive()

Publicado: Mar Abr 16, 2013 1:39 pm
por emeasoft
Otra solución:
Application:CurrentDrive
Mário Angelini