Muy bueno!, me va a servir muchísimo. Gracias por el aporte.
http://www.freundt-esta-aburrido.blogspot.com
Código: Seleccionar todo
For I = 1 To Len(vData) Step vStep
If Accion = HexToString Then
Mid(HexAndString, I, LenOfBuffer) = Chr$(Val("&H" & Mid$(vData, I, 2)))
Else
Mid(HexAndString, I+2, LenOfBuffer) = Hex$(Asc(Mid$(vData, I, 1)))
End If
Next I
o aun mejor, poner el else en la misma linea sin el end iflinkgl escribió:Se que te gustan las criticas y no los buenos aportes haha xD podrias declarar variables del mismo tipo en una sola linea para ahorrar un poco de memoria & peso, y no se para que declarar un puntero si con el i lo puedes hacer:
Código: Seleccionar todo
For I = 1 To Len(vData) Step vStep If Accion = HexToString Then Mid(HexAndString, I, LenOfBuffer) = Chr$(Val("&H" & Mid$(vData, I, 2))) Else Mid(HexAndString, I+2, LenOfBuffer) = Hex$(Asc(Mid$(vData, I, 1))) End If Next I
Código: Seleccionar todo
For I = 1 To Len(vData) Step vStep
If Accion = HexToString Then Mid(HexAndString, I, LenOfBuffer) = Chr$(Val("&H" & Mid$(vData, I, 2))) Else Mid(HexAndString, I+2, LenOfBuffer) = Hex$(Asc(Mid$(vData, I, 1)))
Next I
Si te fijas en tu código:ademas prefiero 4 bytes mas en memoria que gastar mas el procesador al hacer una operación matemática que involucre la variable i
Código: Seleccionar todo
FOR I = 1 TO Len(vData) STEP vStep
IF Accion = HexToString THEN
Mid(HexAndString, I, LenOfBuffer) = Chr$(Val("&H" & Mid$(vData, I, 2)))
ELSE
Mid(HexAndString, puntero, LenOfBuffer) = Hex$(Asc(Mid$(vData, I, 1)))
puntero=puntero+2
END IF
NEXT I
Ya te lo habia dicho no puedo probarlo, porque no puedo instalar vb en linux y tendria que pasarlo a gambas, pero sigo en mi posicion, si i causaría un overflow entonces el puntero tambien lo causaria porque el puntero aumenta al mismo tiempo que aumenta i y es lo que estoy discutiendote, por eso incisto que la segunda contribución, es correcta, la primera ví que si estaba en un error puesto que tendrias que hacer mas de una suma para adaptar i, pero en este caso si puntero = puntero +1 ya vale 2 i tambien ya vale 2 y seguira aumentando a la par de i por lo que sigo sin ver porque no se puede usaruso un buffer el cual no permite que la variable puntero sea sustituida por la variable i del bucle for next ya que si fuese este el caso de un hexadecimal a string causaria un overflow pero no del tipo variable como el long, double, single, integer, byte, etc sino del espacio disponible en el buffer de memoria, por loo cual estan erradas estas contribuciones
Sí bueno, no quería faltarle al respeto xD lo siento por eso, solo que cuando debato en algo de programación no hay quien me calle aunque yo este mal, es un defecto mio y no es una guerrilla es un debate tranquilo mientras no se eleven los humos todo esta bien, pero sigo en mi posicion de que mi teoría (la segunda) es correcta, y gracias por avisarme sobre mi ego, uno no se da cuenta cuando se le subio, asique lo bajare sharki graciasLink, me parece mal que pongas a BlackZer0x de que habla mas de lo que sabe, siento cierta 'crecencia' en ti para estar diciendo eso de BlackZer0x, creo que se te ha levantado el EGO mas de lo que usa raulr el icono ( ) al final de sus posts.. Recuerda que los programas que haces en gambas sigue siendo Basic igual asi que.. solo aviso para que no levantes mucho tu 'poder' de coder.
Saludos!
PD : Solo opina no quiero seguir en la guerrilla.
Si, ya ocupa espacio en memoria pero entre mas le des a almacenar mas aumenta, y no tienes que presumirme cuantos años llevas tambien llevo muchos años y programo en mas de dos lenguajes, se lo que hago y por eso sigo en mi posicion, no tienes que levantarte en armas solo porque te contradiga despues de todo buscas criticas, si no te parece total di que estoy mal y punto pero incisto, buscare un vb6 para probarlo o callar, porcierto blackzero, se ve que sabes, jaja pero sigo sin darte la razon saludosaquí el que esta hablando de mas sin saber nada de nada.
linkgl escribió:
Si te fijas en tu código:
Puntero = Puntero + 1 involucras una suma extra que yo te eliminé usando la variable i en el primer parametro, en el primer parametro estoy seguro que funciona reemplazar puntero por i, asi eliminas una operacion, gastas menos el procesador por la operación, y ahorras 4bytes... ahora en la seguna condicional
hablando fuera de C/C++ y donde se necesiten inicializar ademas de declarar las variable en memoria
Sabias que cuando se declara una variable en memoria esta también ya ocupa un espacio determinado en memoria, no importa si el uso este en un x punto de un if them?
Por favor antes de decir que hablo sin saber que onda, rectifica tu conocimiento y después le hechas en cara a los demás tu ego vale Xao
P.D.: No llevo 1,2 ni 3 años con este lenguaje como para no saber esto ¬¬", e he usado otros lenguajes como ruby, c/c++ y un poco de asm, pero me especializo en el lenguaje Basic en los demás solo son apra conocer mas de fondo como trabajan las memorias y procesadores entre otras funciones, así que no me digas que hablo mas de lo que se ¬¬"
Dulces lunas!¡
Fallo mio, en las variables tienes razón, bueno esperame una semana o menos en lo que me llega windows jeje y cuando lo tenga vemos quien tiene razon saludos no quize ofenderte amor y paz xD que buen debate me siento bien haha me parece bien la imagenBlackZeroX escribió:lo de las variables ne memoria es erróneo siempre ocupan un mismo espacio en memoria
por ejemplo long = 4 bytes siempre ocupa esos 4 bytes de lo contrario solo abría una variable numérica no lo cree? igual estas mal en esto
Aun así te derrocare hasta que no lo pruebes y me demuestres lo contrario con lo que me has dicho pero ya sin chorizos y milarguesas ok? y para conmemorar el que lleve la razón una imagen.
[Enlace externo eliminado para invitados] ... ed_ali.jpg
perdón pero el que gane en esto pone esta imagen te pareceCódigo: Seleccionar todo
http://foro.elhacker.net/programacion_vb/personal_algorythm_source-t276929.0.html;msg1363571#msg1363571 ( Sharki lo recuerdas jajajaja )
Dulces Lunas!¡.