2011-12-17 5 views
10

Estoy tratando de convertir el código de Delphi a vb.net y no estoy seguro acerca de esta línea:

stream.Seek($42, soFromBeginning); 

estoy familiarizado con el uso buscan en FileStreams (en vb.net), pero estoy no estoy seguro acerca del $42.

Supongo que corresponde a una posición, pero ¿cómo se traduce a vb.net?

Respuesta

14

$ es el prefijo para una constante hexadecimal. En VB.NET, eso es & H, por lo que escribiría & H42.

+1

Delphi enterger litterals permite que 'x', '0x' y '$' denoten una notación hexadecimal.Así que '$' no es EL prefijo. – az01

+0

@ az01 Puedo creer 0x (aunque no lo sabía y aún no lo he intentado), pero estoy absolutamente seguro de que ni ax ni xa son enteros literales. – hvd

+2

@ az01 Y ahora que lo he probado, veo que 0x no tiene sentido en lo que respecta a Delphi también. – hvd

1

El valor de $ 42 es el desplazamiento desde el comienzo de la secuencia.

En VB.NET que sería:

reader.BaseStream.Seek(66, IO.SeekOrigin.Begin) 
4

El código necesario para VB.net es casi idéntica:

stream.Seek(&H42, SeekOrigin.Begin) 

Los puntos de la nota aquí son:

  • $ en Delphi es el prefijo para hexadecimal.
  • El soFromBeginning corresponde a SeekOrigin.Begin.
Cuestiones relacionadas