• Viernes 29 de Marzo de 2024, 12:00

Autor Tema:  Abrir Archivo Desde Vb6 Pero No Txt.....  (Leído 4846 veces)

hamdycam

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Abrir Archivo Desde Vb6 Pero No Txt.....
« en: Jueves 3 de Enero de 2008, 15:35 »
0
hola amigos, aun que parezca una tonteria no lo consigo hacer funcionar. es decir, varias veces habro desde mis progrmas archivos txt, tanto linea a linea como el completo, pero el problema lo tengo ahora que quiero abrir un archivo .bin desde el visual y almacenarlo en una variable.

el archivo en si esta formado por caracteres del tipo chr, quiero abrirlos a un txt ypasarlos a hex, para eso hago un bucle con esta sentencia hex(ascb(datos chr)) y ya me los pasa byte a byte, pero el problema lo tengo en que no consigo habrir ese archivo, o solo me habre la primera linea o bien me lo abre todo igual con la primera linea repetida o si bien lo hago con imput no me lo habre y me da un error.

alguien sabe alguna forma de abrir archivos que no esten en formato normal y poder visualizarlos?? es decir, como si quisieramos abrir un .exe para ver su contenido. salu2

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Abrir Archivo Desde Vb6 Pero No Txt.....
« Respuesta #1 en: Jueves 3 de Enero de 2008, 16:24 »
0
intenta abriendo el archivo en modo binario

Código: Text
  1.  
  2. Dim nFileNum As Integer, sMyString As String
  3.  
  4. ' Get a free file number
  5. nFileNum = FreeFile
  6.  
  7. ' Open the file test.txt for binary access
  8. Open "c:\test.txt" For Binary As nFileNum
  9.  
  10. sMyString = Space(7)
  11.  
  12. ' Read 7 characters from the file, starting at byte 12
  13. Get #nFileNum, 12, sMyString
  14.  
  15. ' Close the file
  16. Close nFileNum
  17.  
  18.  

codigo obtenido de: www.developerfusion.co.uk/show/37/8/

hamdycam

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Abrir Archivo Desde Vb6 Pero No Txt.....
« Respuesta #2 en: Jueves 3 de Enero de 2008, 17:05 »
0
gracias amigo pero eso ni me conexta un byte, es decir nada de nada jiiji.
he puesto en el mismo codigo que tengo lo de binary y tampoco. deb de tener que hacerse de otra forma. salu2

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Abrir Archivo Desde Vb6 Pero No Txt.....
« Respuesta #3 en: Jueves 3 de Enero de 2008, 18:26 »
0
Trata de abrir el archivo ejecutable en un control RichTextBox con la instrucción                     LoadFile con el parámetro para solo texto (rtfText), por ejemplo:
Código: Text
  1.    RichTextBox1.LoadFile strFilename, rtfText
  2.  
  3.  
:comp:

hamdycam

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Abrir Archivo Desde Vb6 Pero No Txt.....
« Respuesta #4 en: Jueves 3 de Enero de 2008, 18:32 »
0
lo he conseguido haciendo alguna chapuza con parte del codigo pasado pro el compañero de antes y algun que otro retoqeu jijij. aqui esta:

 
Código: Text
  1.  
  2.     'Array que contendrá los bytes del archivo es decir los datos
  3.     Dim Data() As Byte
  4.     Dim Hex_Temporal As String
  5.  
  6.     'Variable Para el tamaño del archivo ( luego se usa para el Redim )
  7.     Dim fLen As Long
  8.  
  9.     'Abrimos el archivo en modo binario de solo lectura (Binary Lock Read)
  10.     Open Text5.Text For Binary Lock Read As 1
  11.  
  12.     'Redimiensionamos el array al tamaño del archivo
  13.     fLen = FileLen(Text5.Text)
  14.  
  15.     ReDim Data(fLen) As Byte
  16.     'Leemos el archivo entero y lo almacenamos en el array
  17.     Get #1, , Data
  18.     Close 1
  19.    
  20.     'los mostramos en el text6.text
  21.    
  22.     For i = 0 To fLen - 1 Step 1
  23.         Hex_Temporal = Hex$(Data(i))
  24.  
  25.         'ojo!! jii, por si tiene menos de dos caracteres le ponemos un cerito
  26.         If Len(Hex_Temporal) < 2 Then
  27.             Hex_Temporal = "0" & Hex_Temporal
  28.    
  29.            
  30.         End If
  31.         Text6.Text = Text6.Text & Hex_Temporal
  32.     Next
  33.  

muchas gracias por todo, no es muy rapido pero vale.


P.D: luego pruebo con el que me has puesto ahora. salu2 fierassssssssssss

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Abrir Archivo Desde Vb6 Pero No Txt.....
« Respuesta #5 en: Jueves 3 de Enero de 2008, 18:56 »
0
checate este programita

rapidshare.com/files/80990954/Project1.zip.html

hamdycam

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Abrir Archivo Desde Vb6 Pero No Txt.....
« Respuesta #6 en: Viernes 4 de Enero de 2008, 10:33 »
0
lo he probado y tampoco es muy rapido, pero lo weno es que  te va enseñando lo que carga ya en hex, no como el mio que te lo enseña al final del todo y mientras te quedas como un lelo viendo par ala pantalla jiji. solo me flata probar lo del richtextbox y ya contare algo. slau2 fieras y como siempre gracias

hamdycam

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Abrir Archivo Desde Vb6 Pero No Txt.....
« Respuesta #7 en: Viernes 4 de Enero de 2008, 12:15 »
0
al final la opcion richtextbox es la mas adecuadaaaaa jijij, y muxas gracias.

es decir, la carga es al instante del click, si es verdad qu lo hace en char pero esto se soluciona muy rapido con una funcion hex2ascii jijiji. aqui como lo he dejado, y deciros que va como un tiro, sobre todo porque uso archivos de 7000 bytes y esto se enredaba como unos 10 segundos, ahora solo el tiempo del click.

e aqui el code:

esto en el boton de arranque:

Citar
RichTextBox1.LoadFile txtArchivo.Text


txtHex.Text = Ascii2Hex(RichTextBox1.Text)

esto es la funcion:

Citar
Public Function Ascii2Hex(sAscii As String) As String
    Dim nCChar As Integer
    Dim sHex As String
   
    For nCChar = 1 To Len(sAscii)
        sHex = Hex$(Asc(Mid$(sAscii, nCChar, 1)))
        Ascii2Hex = Ascii2Hex & CStr(IIf(Len(sHex) = 1, "0" & sHex, sHex))
    Next
End Function


salu2 y wenos dias, ahora el progrma va lo rapido que deveria.


a ver si tengo un rato y os expongo aqui unas dudas que tengo trabajando con bignums, tengo muxos modulos creados pero me falla la velocidad, creo que seria interesante implementarlos en una dll pero agradecere ayuda para mejorar su velocidad. salu2 fierassssss