Page 1 of 1

Manejar los CDROM

PostPosted: Mon Jul 13, 2009 5:22 pm
by Armando Picon
Estoy escribiendo una pequeña aplicaciòn para poder administrar los archivos de software o aplicaciones que tengo en mis CD`s y necesito leerlos para averiguar:
a) La etiqueta del CD (que yo mismo los pongo cuando "quemo" los Cd)
b) leer las carpetas y los archivos que contienen estas carpetas
c) obtener, mediante el Directory() las caracterìsticas de los archivos (nombre, tamaño, fecha de grabado y etc)
d) Todos estos datos los debo almacenar en una Dbf, que ya lo tengo creado.

La pregunta es, ¿tiene alguien una rutina que permita poder leerse el CD? o ¿que al menos pueda hacerlo funcionar la lectora al insertar el CD?

Salvo este inconveniente, la aplicaciòn se encuentra lista.... :oops:

Re: Manejar los CDROM

PostPosted: Thu Jul 16, 2009 4:40 pm
by Armando Picon
Tal parece que en el foro NADIE a escrito algo referente a manejar archivos en CDROM ... ¡què pena! :cry:

Re: Manejar los CDROM

PostPosted: Thu Jul 16, 2009 5:20 pm
by Antonio Linares
Y porque no usas Directory() ?

Re: Manejar los CDROM

PostPosted: Thu Jul 16, 2009 10:20 pm
by Armando Picon
Antonio Linares wrote:Y porque no usas Directory() ?

El inconveniente, estimado Antonio, es que para poder utilizar el Directory() debe accesarse primero al CD y leerlo. Esto exige exige que el motorcito del aparatito funcione para girar al CD y luego leer los datos. Si conoces algun Dll que tenga las rutinas de manejo, talvez me sea posible invocarlas desde (x)harbour.

Re: Manejar los CDROM

PostPosted: Sat Jul 18, 2009 4:44 pm
by Antonio Linares
Armando,

De eso debe encargarse el sistema operativo automaticamente.

En principio, con que llames a Directory() será suficiente, Windows hará el resto.

Re: Manejar los CDROM

PostPosted: Sun Jul 19, 2009 3:06 am
by Armando Picon
Antonio, pues, ya hice la prueba en mi "quemqdora" y.... nada de nada! :wink: Por eso la consulta se hizo necesaria

Re: Manejar los CDROM

PostPosted: Tue Jul 21, 2009 2:30 am
by mmercado
Hola Armando:

Creo que todo debe partir del conocimiento de la unidad lógica con la que quieres trabajar.

Como ya sabes normalmente las unidades logicas asignadas a los drivers de CD-DVD son D: E: F:, etc.

Si en tu programa ya sabes con cual unidad lógica vas a trabajar, lo demás es muy simple:

La función VolumeName( "E:" ) te devolverá la etiqueta asignada al CD-DVD (unidad E:).

Para el directorio podrás usar aDir := Directory( "E:\*.* )

Ahora que si desconoces la unidad lógica, podrás encontrarla o validarla con la función aDrives() que te devuelve una matriz con las únidades lógicas válidas en tu sistema.

Espero haber ayudado un poco.

Un abrazo.

Manuel Mercado

Re: Manejar los CDROM

PostPosted: Tue Jul 21, 2009 1:18 pm
by Patricio Avalos Aguirre
hola

Revisa la libreria CT.LIB ahi hay varias funcione de disco que pueden ayudarte

Code: Select all  Expand view
DriveType( [<cDrive>] ) --> nDriveType

Arguments
<cDrive>
This parameter defaults to the current drive letter. It can be specified as a drive letter from A to Z without a colon. Return
The function returns a numeric value indicating the type of the specified drive. The following values are possible:
Codes for drive types Return Drive type
0 RAM drive
2 Floppy drive
3 Hard drive
4 CD-Rom drive
5 Network drive
9 Unknown drive
 

Re: Manejar los CDROM

PostPosted: Tue Jul 21, 2009 2:46 pm
by Armando Picon
Hola Manuel, Hola Patricio
Las unidades ya los tengo determinadas y es cierto que con el drivetype() he determinado las unidades, hice la validadciòn correspondiente de la unidad y luego utilizo Directory() para obtener el contenido pero... la unidad no funciona. Para descartar mi quemadora hice pruebas en otros equipos, tambièn con "quemadoras", pero ... no funciona! Hay algunas aplicaciones de pago referidas a hacer albumes de musica, que funcionan y esa misma funcionalidad quiero que ocurra con respecto a mis programas, software, codigo, documentos y etc. que tengo en los CDs. Es muy molesto tener que estar metiendo y sacando los CD para ubicar, por ejemplo, una versiòn de alguno de mis codigos o aplicaciones en (x)harbour o clipper o foxpro o documentos antiguos... esa es la magnitud del inconveniente que deseo resolver y, ¿`porquè no?, que si alguien del foro lo necesita, pues tambièn lo tenga :wink: