Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BlackZeroX

#3201
Cita de: WestOn en  3 Octubre 2008, 04:22 AM
Muxas gracias loko ;D intentare encontrar el error, si lo consigo cuelgo el code  :laugh:

un saludo

el error esta en el rango a Mostrar (en el Do While no toques el de a Cargar) los bytes eso te lo dejo je xP
#3202
Arregla el Codigo y te servira mejor ok

[colode=red]Tiene un Simple Error je lo solucionaria pero ya no tengo tiempo Xao[/color]

Pon en un formulario:
Un textvox con multiline=true
un commandbutton1
dos lebels con sus nombres originales

Código (vb) [Seleccionar]

Option Explicit

Dim Bytes() As Byte
Const ByteInicial = 10
Const BytesACargar = 1000
Dim CantCargados As Integer

Private Sub Command1_Click()
    Dim ff As Integer
    Dim TamañoArchivo As Double
    Dim AuxLine As String
    Dim i As Integer, j As Integer
    Dim line1 As String, line2 As String
    Dim Datos As String
    Dim unk As String
    Dim ch As String
   
    CantCargados = ByteInicial + BytesACargar - 1
   
    ff = FreeFile
    Open InputBox("", "", "D:\miguel estio y demas.txt") For Binary As #ff
        TamañoArchivo = LOF(ff)
        ReDim Bytes(ByteInicial To CantCargados)
        Get #ff, ByteInicial, Bytes
    Close
    Label1 = "Se han cargado: " & UBound(Bytes) & " bytes de un total de " & TamañoArchivo & " Bytes"
   
    unk = Chr$(191)
    i = ByteInicial
    Datos = ""
    Do While i <= CantCargados
        line1 = Format$(i, "@@@@@@: ")
        line2 = vbTab
        For j = 0 To 7
            If i + j > BytesACargar Then
                line1 = line1 & "   "
            Else
                ch = Bytes(i + j)
                line1 = line1 & Format$(Hex$(ch), "@@ ")
                If ch >= 32 Then
                    line2 = line2 & Chr$(ch)
                Else
                    line2 = line2 & unk
                End If
            End If
        Next j
        'Text1 = Text1 & line1 & line2 & vbCrLf
        Datos = Datos & line1 & line2 & vbCrLf
        i = i + 8
        DoEvents
    Loop
    Text1 = Datos
    Label2 = TamañoArchivo & " Bytes;" & vbTab & TamañoArchivo / 1024 & " Kb;" & vbTab & TamañoArchivo / 1024 / 1024 & " MB;"
   
    ReDim Bytes(0)
    Datos = ""
    ch = ""
    line1 = ""
    line2 = ""
    i = 0
    j = 0
    CantCargados = 0
End Sub

Private Sub Form_Load()
    With Text1
        .FontName = "Courier New"
        .FontSize = 7
    End With
End Sub
#3203
Cita de: achernar_ en  1 Octubre 2008, 17:17 PM
Esto:

Código (vb) [Seleccionar]

    Open fname For Binary As #fnum
        num_bytes = LOF(fnum)
            ReDim bytes(wed To wsd)
        Get #fnum, wed, bytes
    Close fnum


No tendira que ser asi?

Código (vb) [Seleccionar]

    fnum = freefile
    Open fname For Binary As #fnum
        num_bytes = LOF(fnum)
            ReDim bytes(1 To num_bytes)
        Get #fnum, num_bytes, bytes
    Close fnum


y para verlos en hex y en ascii seria (muy basicamente) asi:
(tendrias que no convertir a ascii a los caracteres como el retorno de carro, el avance de linea, tab y quizas otros que van a alterar la forma en que se muestren los demas caracteres)

Código (vb) [Seleccionar]
text1.text= vbnullstring
text2.text = vbnullstring
for i = 1 to num_bytes
   text1.text = text1.text + hex$(bytes(i))
   text2.text = text2.text + chr$(bytes(i))
next i


mmm el codigo no es mio ademas es cuando no sabia nada de nada practicamente este fue uno de los primeros codigos fuente que me baje y entendi.

ahora lo de freefile si lo se esta incompleto jamas dije que era el codigo esacto solo es un ejemplo ¬¬ para poder cargar los tramos del archivo X

lo de las funciones Hex() y Chr() si tambien me las se pero si a alguien no les convences entonces puede ver como convertir de byte a Hex de de Hex a Char o biseversa esa es la funcion de ese codigo fuente

P.D.: siempre ponte en mente como es que funcionan las funciones y como podrias hacer la tuyas asi aunque sean repetidas te ayudaran a comprender mas aya de lo avitual y posiblemente te facilite la vida en algun otro lugar donde no existan estas Por algo puse esto...¡!

Suerte
#3204
Bueno este es un Soruce de un codigo fuente apa aquellos que deceen ver el Hexadecimal un X archivo

NO CARGA ARCHIVOS Mayores alrededor de  200kb's  jajaja

Codigo Fuente Visor Hexadecimal <Descargar>

Con una simple modificacion en donde se obtiene el contenido del archivo, especificarle  desle desde que Byte abrirlo y ya les soportara a abrir archivos de kb megas gigas o TB (si es que hay  ¬¬ ja) aun que en realidad cargarian un Sector (Pedazo) por asi desirlo de ese archivo en una variable quedando algo asi como en este Visor Hexadecimal creado al 100% poor un servidor (sin tomar codigo del que pongo y me sivio para entender el funcionamento del Hexadecimal en vb6)

P.D.: indicarle tambien el byte en donde se cerrara

SemiEjemplo:

Código (vb) [Seleccionar]

    Open fname For Binary As #fnum
        num_bytes = LOF(fnum)
            ReDim bytes(wed To wsd)
        Get #fnum, wed, bytes
    Close fnum


Un Visor Byte-Hexadecimal-Ascii de archivos en VB6 como ejemplo (Cuando encuentre el codigo fuente en mi PC lo posteo aca ok)

<Descargar>

<Como abrir Otro Archivo en el Programa?¿>  http://infra.110mb.com/VB/Visor_Hexadecimal/temp_visorHex.GIF



Un Saludo
#3205
cual te fumaste ?¿ ¬¬
#3206
Programación Visual Basic / Re: leer archivo BINARIO
30 Septiembre 2008, 06:39 AM
bueno la vdd esto es lo unico que te pondre y ya lo demas me parece que va por tu cuenta No lo crees?¿

el codigo esta incompleto lo demas tu lo pones

Código (vb) [Seleccionar]

    Open fname For Binary As #fnum
        num_bytes = LOF(fnum)
            ReDim bytes(wed To wsd)
        Get #fnum, wed, bytes
    Close fnum


P.D.: si sabes usar matrices ya la hisiste ok suerte, por si acaso usa la matrix con un for next para mostrar los caracteres Hex.

ejemplo de Editor Hexadecimal hecho en VB <Descargar>

<Como abrir Otro Archivo en el Programa?¿>  http://infra.110mb.com/VB/Visor_Hexadecimal/temp_visorHex.GIF

#3207
Cita de: el_c0c0 en 30 Septiembre 2008, 04:22 AM
serial con 0?,, mira vos, yo lo use siempre con todos 1...

gracias por subirlo, saludos

jaja yo puse numeros a la sar XP

a lo loco por decir algo xP
#3208
Programación Visual Basic / Re: leer archivo BINARIO
30 Septiembre 2008, 04:52 AM
Cita de: WestOn en 29 Septiembre 2008, 20:05 PM
:o tienes razon!! menudo fallo.. grax por decirmelo porq la verdad esq no lo veia (estoy jodido... :laugh:)

voy a probarlo q ya tengo ganas..

PD:FUNCIONA DEBUTY!!, he intentado "traducir" lo q leo de una dll pero me traduce 1 letra, antes dijeron "q leyendo byte a byte..." como hago eso?, aparte lo he intentado pasar a un text y no he sido capaz..tan solo con lo de msgbox  :xD

un saludo & thaaaanks ;D


para esto de un byte a byte ve de a leer un manual no es coplicado en lo absoluto

1 pista
carga x buts en una variable despues cuentas has un bucle de esa cantidad de bytes cargados y conviertelos cuando termines carga los restantes no te puedo dar mas lee un libro de vb je Xao

P.D.: practicamente es un seudo codigo jeje xP
#3209
Programación Visual Basic / Re: MS-DOS en VB
30 Septiembre 2008, 04:38 AM
mmmm espero y te sirv esto je.¡!
a si solo crea un archivo en "c:\test.bat" con contenido que desees por ejemplo este:


Código (vb) [Seleccionar]
dir /w

en un formulario:
1 solo botoncillo


Código (vb) [Seleccionar]

Private Sub Command1_Click()
    Dim result As Long, sout As String, cwritten As Long
    sout = "hi there" & vbCrLf
    result = WriteConsole(hconsole, ByVal sout, Len(sout), cwritten, ByVal 0&)
    Shell "c:\test.bat"
End Sub

Private Sub Form_Load()
    If AllocConsole() Then
        hconsole = GetStdHandle(std_output_handle)
    If hconsole = 0 Then MsgBox "couldn't allocate stdout"
    Else
        MsgBox "couldn't allocate console"
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    CloseHandle hconsole
    FreeConsole
End Sub


En un Modulo
Código (vb) [Seleccionar]

Public Declare Function AllocConsole Lib "kernel32.dll" () As Long
Public Declare Function FreeConsole Lib "kernel32.dll" () As Long
Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Public Declare Function GetStdHandle Lib "kernel32.dll" (ByVal nStdHandle As Long) As Long
Public Declare Function WriteConsole Lib "kernel32.dll" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, ByRef lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, ByRef lpNumberOfCharsWritten As Long, ByRef lpReserved As Any) As Long
Public Const std_output_handle = -11&
#3210
Programación Visual Basic / Re: leer archivo BINARIO
29 Septiembre 2008, 05:35 AM
Cita de: WestOn en 29 Septiembre 2008, 03:57 AM
Hola  ░▒▓BlackZeroҖ▓▒░ he puesto tu code un modulo.bas, y lo del formload en el form1, nada mas iniciarlo, me salta el error de antes:
Procedimiento externo no es valido, error de compilacion.

me lo saca aqui:
nBytes = Len (CodigoHex)\ 2

un saludo  ;)

Algo as de estar haciendo mal Ami en lo personal en un proyecto nuevo No me marca ningun Tipo de error...