2014-08-29 4 views
0

В VB я читаю файл строки за строкой, используя метод IO.File.Readline(). Каждая строка файла содержит строку, подобную следующейПреобразование строки в шестнадцатеричный в VB

«: 1A2C003F4EDCFE3A2F5D66 \ г \ п»

Теперь для каждой строки я прочитал, Все, что я хочу сделать, это 1. Снимите «:» и «\ r \ n» из строки
2. сопоставьте значения как байты, например: «1A 2C 00» ... (Теперь строка будет «1A 2C 00 3F 4E DC FE 3A 2F 5D 66»)
3. Добавьте все байты вместе и чтобы найти результат равен нулю или нет. например: (1A + 2C + 00 + 3F + 4E + DC + FE + 3A + 2F + 5D + 66) = 0?

Как я могу продолжить?

До сих пор я сделал

While endofstream = False 
    stringReader = fileReader.ReadLine() 
    If stringReader.StartsWith(":") Then 
     stringReader = stringReader.Replace(vbCr, "") 
     stringReader = stringReader.Replace(":", "") 

    MsgBox(stringReader) 
+0

Пытались ли вы что-нибудь до сих пор? Если да, пожалуйста, поделитесь этим кодом. –

+0

До сих пор я мог читать файл по строкам, и я мог проверить, есть ли строка 'if line.startswith (":")', а затем исключить из строки строки: "и" \ r \ n ". Это все, что я мог сделать. –

+0

Вставьте этот код. – FrEaKmAn

ответ

0

Но будьте осторожны. Разве у вас нет частей из 4 символов? 1A2C 003F 4EDC ...

Все, что вам нужно сделать, это преобразовать шестнадцатеричный в десятичное число и просуммировать их

Dim sum As Integer 
For index As Integer = 0 To stringReader .Length-1 Step 2 
    ' we take 2 chars 
    ' we use ToInt32 method http://msdn.microsoft.com/en-us/library/f1cbtwff.aspx 
    sum += Convert.ToInt32(stringReader.Chars(index) & stringReader.Chars(index+1), 16) 
Next 

' use sum 

В моем случае, результат 985

Смежные вопросы