Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: CH4ØZ en 17 Octubre 2011, 00:17 AM

Título: C to vb.net problem
Publicado por: CH4ØZ en 17 Octubre 2011, 00:17 AM
Bueno, tengo este C (en realidad es el peón, pero es un metamod de C) y el código i no se traducen en vb.net, alguien me puede ayudar con esto:

GetPointZPos(Float: point_X, Float: point_Y, &Float: point_Z)
{
if(!(-3000.0 < point_X < 3000.0 || -3000.0 < point_Y < 3000.0))
return 0;

static
File: z_Map_File
;
if(!z_Map_File)
{
z_Map_File = fopen("SAfull.hmap", io_read);

if(!z_Map_File)
return 0;
}
new
z_Data[2 char]
;
fseek(z_Map_File, (-6000 * (floatround(point_Y, point_Y <= 0.0 ? floatround_ceil : floatround_floor) - 3000) + floatround(point_X, point_X <= 0.0 ? floatround_ceil : floatround_floor) + 3000) * 2);
fblockread(z_Map_File, z_Data, 2 char);

point_Z = (z_Data[1 / 2] & 0x0000FFFF) * 0.01;
return 1;
}


Código (vbnet) [Seleccionar]
Public Function GetZFromXY(ByVal X As Single, ByVal Y As Single) As Single
   If Not (-3000.0 < X < 3000.0 Or -3000.0 < Y < 3000.0) Then Return 0.0
   Static Reader As New IO.BinaryReader(New IO.FileStream(My.Application.Info.DirectoryPath & "\SAfull.hmap", IO.FileMode.Open))
   Dim Z(2) As Byte
   Reader.BaseStream.Seek(((-6000 * (Math.Round(Y, If(Y <= 0.0, MidpointRounding.AwayFromZero, MidpointRounding.ToEven)) - 3000) + Math.Round(X, If(X <= 0.0, MidpointRounding.AwayFromZero, MidpointRounding.ToEven)) + 3000)) * 2, IO.SeekOrigin.Begin)
   Reader.Read(Z, 0, 2)
   Reader.Close()
   return ((Z(1 / 2) And &HFFFF) * 0.01)
End Function


codigo actualizado
Título: Re: C to vb.net problem
Publicado por: Keyen Night en 17 Octubre 2011, 01:44 AM
do you not speak spanish?
Título: Re: C to vb.net problem
Publicado por: CH4ØZ en 17 Octubre 2011, 02:46 AM
google traductor. Estoy viviendo en anrgentina ahora, pero yo soy de canada
Título: Re: C to vb.net problem
Publicado por: Keyen Night en 17 Octubre 2011, 16:05 PM
Well then for than you feel good here, I going to speaking in english :xD

No ya en serio, se ve bien traducido, claro son 2 lenguajes muy diferentes, quizas el problema está en la interpretación que el compilador le da al código, problemas de conversión u operación deberias debuggear ambos y ver como van cambiando los valores en las variables así encontrarás las diferencias. Y que tan diferentes son los resultados finales de ambos códigos?
Título: Re: C to vb.net problem
Publicado por: $Edu$ en 17 Octubre 2011, 16:56 PM
My name is Eduardo, I live in Uruguay. I like french fries.
Título: Re: C to vb.net problem
Publicado por: MauroMasciar en 17 Octubre 2011, 17:55 PM
Hay tantos foros en ingles... :silbar:
Título: Re: C to vb.net problem
Publicado por: CH4ØZ en 17 Octubre 2011, 20:10 PM
Cita de: Keyen Night en 17 Octubre 2011, 16:05 PM
Well then for than you feel good here, I going to speaking in english :xD

No ya en serio, se ve bien traducido, claro son 2 lenguajes muy diferentes, quizas el problema está en la interpretación que el compilador le da al código, problemas de conversión u operación deberias debuggear ambos y ver como van cambiando los valores en las variables así encontrarás las diferencias. Y que tan diferentes son los resultados finales de ambos códigos?

C function => Float point number

My function => 0

parece que no leyó el archivo
Título: Re: C to vb.net problem
Publicado por: Keyen Night en 18 Octubre 2011, 04:54 AM
You must discarding possible errors, see what is the seek value in each code. I think in english is more easy to you.
Título: Re: C to vb.net problem
Publicado por: CH4ØZ en 18 Octubre 2011, 16:48 PM
el problema está en la lectura. seek la posición son los mismos
Título: Re: C to vb.net problem
Publicado por: Keyen Night en 18 Octubre 2011, 17:04 PM
Post the file, I want to test.
Título: Re: C to vb.net problem
Publicado por: CH4ØZ en 20 Octubre 2011, 00:53 AM
Después de algunas pruebas me di cuenta del problema, pero no puedo encontrar la solución. El problema es que la función BinaryReader no funcionan como fblockread.
Título: Re: C to vb.net problem
Publicado por: Keyen Night en 20 Octubre 2011, 04:24 AM
Quizas sea un problema de conversión, empieza a comparar las 2 funciones con ejercicios simples, tomando en cuenta los tipos (Byte, Short, Long, Int).