FoxPro/Visual FoxPro - Como grabo el resultado de ...

 
Vista:

Como grabo el resultado de ...

Publicado por akiko (17 intervenciones) el 18/05/2007 16:41:09
Hola

Gracias por leer mi duda

Resulta que usando el comando dir /w me surgio la interrogante de como vaciar su resultado en un campo memo de una tabla. es eso posible ?? si es asi, que codigo debo suar para lograrlo ???

Gracias por tus indicaciones

AKIKO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como grabo el resultado de ...

Publicado por enrique (1041 intervenciones) el 18/05/2007 18:13:33
En vez de utilizar dir /w utilizaría

vdir = adir(mdir,"archivos")

esto te crea la matriz "mdir" de los "archivos" (del directorio donde estes ubicado) y te devuelve en "vdir" la cantidad de archivos cargados en mdir.

luego crea una tabla para probar

create table tdir (dir m)

y despues ejecuta este código

for i= 1 to vdir
replace dir with mdir[i,1] addi
replace dir with str(mdir[i,2]) addi
replace dir with dtoc(mdir[i,3]) addi
replace dir with mdir[i,4] addi
replace dir with mdir[i,5] addi
replace dir with chr(13) addi && esto inserta un retorno de carro
endfor

visualiza el memo y tendras todos los datos de los archivos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ok pero ....

Publicado por AKIKO (17 intervenciones) el 18/05/2007 19:48:44
Hola, gracias por responder

Hay un detalle lo que tu propones esta bien pero no devuelve el serial del disco duro (no me refiero al volumen que es otra cosa). Me han recomendado un sin fin de codigo pero ninguno devuelve el serial del disco duro como lo retorna dir/w, osea en formato hexadecimal. He ahi el problema.

Si conoces alguna forma que me retorne el serial en hexadecimal o en decimal o lo llevo a hexa seria bueno. Lo otro es que en las rutinas que me han pasado pues els erial que retorna es negativo y eso no suena bien y llevandolo a hexadecimal pues noe s igual al valor que retorna dir/w

Gracias por tu valiosa ayuda

AKIKO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ok pero ....

Publicado por Baldor (19 intervenciones) el 18/05/2007 21:34:17
Hola amigo
ahi te envio un afuncion.. chequeala .. creo que te devuelve en decimal.... tienes que enviar la unidad "c:\" ojala te sirva
saludos

FUNCTION GetVol(lpRoot)
*-----------------------------------------------
* Nuestra información del volumen
* USO: GetVol("C:\")
* PARAMETRO: lpRoot = LetraDrive + ":\"
*-----------------------------------------------
LOCAL lnRet, lcString, lpVolName, ;
nVolSize, lpVolNumber, ;
lpMaxComp, lpFlags, ;
lpFSName, nFSSize

IF EMPTY(lpRoot)
lpRoot = "d:\"
ENDIF
lpVolName = SPACE(256)
nVolSize = 256
lpVolNumber = 0
lpMaxComp = 256
lpFlags = 0
lpFSName = SPACE(256)
nFSSize = 256

DECLARE INTEGER GetVolumeInformation ;
IN Win32API AS GetVolInfo ;
STRING @lpRoot, ;
STRING @lpVolName, ;
INTEGER nVolSize, ;
INTEGER @lpVolNumber, ;
INTEGER @lpMaxComp, ;
INTEGER @lpFlags, ;
STRING @lpFSName, ;
INTEGER nFSSize

lnRet=GetVolInfo(@lpRoot, @lpVolName, ;
nVolSize, @lpVolNumber, ;
@lpMaxComp, @lpFlags, ;
@lpFSName, nFSSize)

IF lnRet > 0
lcString = "Drive name: " + ;
ALLT(lpRoot)+CHR(13)+ ;
"Vol name: " + ;
LEFT(ALLT(lpVolName),LEN(ALLT(lpVolName))-1)+CHR(13)+ ;
"Max #/chars in vol name: " + ;
ALLT(STR(nVolSize))+CHR(13)+ ;
"Vol Serial #: " + ;
ALLT(STR(lpVolNumber))+CHR(13)+ ;
"Max #/chars in dir/file names: " + ;
ALLT(STR(lpMaxComp))+CHR(13)+ ;
"File Sys Flags: " + ;
ALLT(STR(lpFlags))+CHR(13)+ ;
"File Sys type: " + ;
LEFT(ALLT(lpFSName),LEN(ALLT(lpFSName))-1)+CHR(13)+ ;
"File Sys Name Size: " + ;
ALLT(STR(nFSSize))
ELSE
lcString = "No se pudo ver información"
ENDIF
=MESSAGEBOX(lcString, "Información del volumen")
RETURN ""
ENDFUNC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar