2011-12-17 7 views
10

Próbuję przekonwertować kod Delphi do VB.NET i nie jestem pewien o tym wierszu:

stream.Seek($42, soFromBeginning); 

jestem zaznajomiony z użyciem zasięgnąć na filestreams (w VB.NET), ale jestem nie jestem pewien co do $42.

Zakładam, że odpowiada pozycji, ale jak to się tłumaczy na vb.net?

Odpowiedz

14

$ jest przedrostkiem stałej szesnastkowej. W VB.NET jest to & H, więc można napisać & H42.

+1

Liczby całkowite Delphi pozwalają na "x", "0x" i "$" oznaczać zapis szesnastkowy. Więc "$" nie jest prefiksem. – az01

+0

@ az01 Mogę wierzyć 0x (chociaż nie zdawałem sobie z tego sprawy i muszę go jeszcze wypróbować), ale jestem absolutnie pewien, że ani ax, ani xa nie jest literałem całkowitym. – hvd

+2

@ az01 A teraz, gdy próbowałem, widzę, że 0x jest nonsensem, jeśli chodzi o Delphi. – hvd

1

Wartość 42 USD jest przesunięciem od początku strumienia.

W VB.NET, które byłyby:

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

Kod wymagany do VB.net jest niemal identyczna:

stream.Seek(&H42, SeekOrigin.Begin) 

Punkty nocie oto:

  • $ w Delphi to przedrostek dla heksadecymalnej.
  • Numer soFromBeginning odpowiada SeekOrigin.Begin.