Como leer un archivo !?

Iniciado por Yurix, 4 Agosto 2009, 17:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Yurix

Hola , estoy liado con un algoritmo de preprocesado de datos para su posterior compresión , pero como novato al fin no tengo experiencia con las apis de lectura y escritura , no te pido que me hagas el código  ;D, ya yo lo tengo terminado y probado solo tengo unas dudas . Necesito que el programa lea y escriba en un archivo (De cualquier tamaño).Ya se como crear un archivo pero necesito leerlo y no me sale bien , me puedes ayudar ?

Este es para escribir :

; EN eax tendremos el archivo a preprocesar (Ruta)

comment *
; Para crear un archivo ...
                 ;creamos el archivo
               invoke CreateFileA,eax, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0
                mov [handleCreado], eax

                ;Escibimos el archivo
                invoke WriteFile, eax,addr MsgTexto,20,addr bEscritos, NULL

                ; "Cerramos" el archivo creado
                invoke CloseHandle, [handleCreado]

------------------------------------Me funciona bien , pero el de leer :


; Para leer de un archivo

    invoke CreateFile,eax,
                      GENERIC_READ,
                      FILE_SHARE_READ,
                      NULL,OPEN_EXISTING,
                      FILE_ATTRIBUTE_NORMAL,
                      NULL
    mov [handleruta], eax

; Obtener el tamaño
    invoke GetFileSize,handleruta,NULL
    mov [tamano], eax

invoke ReadFile,[handleruta],[datos],eax,ADDR br,NULL

invoke CloseHandle,[handleruta]

Me da error al crear el handle.

Saludos


http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.

Eternal Idol

Comproba los parametros (especialmente que la cadena en eax sea correcta) y llama a GetLastError para averiguar la causa por la cual no abre el archivo.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

YST

Código (asm) [Seleccionar]

invoke GetFileSize,[handleruta],NULL


Yo le enseñe a Kayser a usar objetos en ASM