Cita de: WestOn en 3 Octubre 2008, 04:22 AM
Muxas gracias loko intentare encontrar el error, si lo consigo cuelgo el code
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
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úCita de: WestOn en 3 Octubre 2008, 04:22 AM
Muxas gracias loko intentare encontrar el error, si lo consigo cuelgo el code
un saludo
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
Cita de: achernar_ en 1 Octubre 2008, 17:17 PM
Esto:
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?
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)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
Open fname For Binary As #fnum
num_bytes = LOF(fnum)
ReDim bytes(wed To wsd)
Get #fnum, wed, bytes
Close fnum
Open fname For Binary As #fnum
num_bytes = LOF(fnum)
ReDim bytes(wed To wsd)
Get #fnum, wed, bytes
Close fnum
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
Cita de: WestOn en 29 Septiembre 2008, 20:05 PM
tienes razon!! menudo fallo.. grax por decirmelo porq la verdad esq no lo veia (estoy jodido... )
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
un saludo & thaaaanks
dir /w
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
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&
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