2011-12-17 37 views
10

Tôi đang cố gắng để chuyển đổi mã Delphi để vb.net và tôi không chắc chắn về dòng này:

stream.Seek($42, soFromBeginning); 

Tôi quen thuộc với việc sử dụng tìm kiếm trên filestreams (trong vb.net) nhưng tôi không chắc chắn về số $42.

Tôi giả định rằng nó tương ứng với một vị trí, nhưng làm thế nào để dịch sang vb.net?

Trả lời

14

$ là tiền tố cho hằng số thập lục phân. Trong VB.NET, đó là & H, vì vậy bạn sẽ viết & H42.

+1

Số nguyên nguyên Delphi cho phép 'x', '0x' và '$' biểu thị ký hiệu thập lục phân. Do đó '$' không phải là tiền tố. – az01

+0

@ az01 Tôi có thể tin 0x (mặc dù tôi không biết về nó và vẫn chưa thử nó), nhưng tôi hoàn toàn chắc chắn rằng không phải rìu cũng không xa là một chữ số nguyên. – hvd

+2

@ az01 Và bây giờ tôi đã thử nó, tôi thấy rằng 0x là vô nghĩa như xa như Delphi là có liên quan quá. – hvd

1

Giá trị $ 42 là giá trị bù trừ từ đầu luồng.

Trong VB.NET đó sẽ là:

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

Mã cần thiết cho VB.net là gần như giống hệt nhau:

stream.Seek(&H42, SeekOrigin.Begin) 

Những điểm đáng chú ý ở đây là:

  • $ trong Delphi là tiền tố cho hệ thập lục phân.
  • soFromBeginning tương ứng với SeekOrigin.Begin.
Các vấn đề liên quan