que hace Mod en vb6?

Iniciado por WHK, 16 Septiembre 2009, 01:18 AM

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

WHK

estaba observando unas funciones de un código de vb6 y queria pasarlo a php pero hay cosas que no entiendo bien como por ejemplo esto:
Código (vb) [Seleccionar]
Chr(Len(pck) Mod 256)

crh  convierte decimales a string y len es el tamaño del string de pck pero mod 256? que hace mod? le da limite o le hace alguna operación aritmética?

raul338

Mod te devuelve el resto de una division

ejemplo:
5 / 2 = 2
5 Mod 2 = 1 (Resto de 5 / 2)

en PHP se usa con el signo "%"

VB
5 Mod 2

PHP
5 % 2

Cortito, pero espero que te sirva  ;D

WHK

si, muchas gracias   :D
y cuando hago \ es lo mismo que dividir / ?
Chr(Len(pck) \ 256)
supongo que quiere decir divide ya que division para mi es / no \

Novlucker

#3
Divide ... pero solo retorna la parte entera ... 29\6 = 4

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

WHK

o sea que sería
Código (php) [Seleccionar]
$valor = (int)(29 / 6);

y cuando me dice
Chr("&H" & numero)

&H supongo que se refiere al valor hexadecimal no? pero si no hay valor significa que es \x00 o me equivoco?

Novlucker

Perdón .. he corregido ... 29\6=4 ... da la parte entera .. y te lo había dejado como si redondeara  :P

Exacto .. es el valor hexadecimal, y si no hay nada debería de tirar error no debería de funcionar, a menos que numero valga 0

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

WHK

#6
bueno así quedó, gracias:

Código (vb) [Seleccionar]
Public Function data(YahooID As String) As String
   data = Header("57", "1À€" & YahooID & "À€")
End Function

Public Function Header(ByVal PacketType As String, ByVal pck As String) As String
   Header = "YMSG" & Chr(0) & Chr(13) & String(2, 0) & Chr(Len(pck) \ 256) & Chr(Len(pck) Mod 256) & Chr(0) & Chr("&H" & PacketType) & String(8, 0) & pck
End Function


Código (php) [Seleccionar]
<?php
function data($yahoo_id){
 return 
head('57''1À€'.$yahoo_id.'À€');
}

function 
head($tipo_paquete$paquete){
 return 
  
"YMSG\x00\x0D\x00\x00".
  
ord((int)(strlen($paquete) / 256)).
  
ord(strlen($paquete) % 256).
  
"\x00".
  
ord($tipo_paquete).
  
str_repeat("\x00"8).
  
$paquete;
}
?>

Novlucker

Y eso donde iría? Chat Yahoo?  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

WHK

#8
esque hace tiempo hize un cliente de yahoo chat pero el módulo bass del login no lo habia hecho yo y quería pasarlo a php pero en modo consola usando stdin para obtener los strings similar al zinc de linux pero de codigo manipulable sin la necesidad de compilar. Para el cifrado de YMSG12ENCRYPT.dll lo quiero solucionar descompilandolo o haciendo un servicio online donde puedas enviar los datos y te devuelve el string en modo de base64 o hexadecimal directamente, algo asi como una api.

Novlucker

AAah! imaginé que era para el cliente, pero no entendia a que iba el php, ahora si  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein