2016-03-24 3 views
-2

вот как преобразовать десятичные числа в Ascii, но у меня есть десятичный в дефферентном формате, и я хочу, чтобы он преобразовал его в ascii.Преобразование десятичного в Ascii?

Public Shared Function DecimalToASCII(dec As String) As String 
    Dim ascii As String = String.Empty 

    For i As Integer = 0 To dec.Length - 1 Step 3 
     ascii += CChar(ChrW(Convert.ToByte(dec.Substring(i, 3)))) 
    Next 

    Return ascii 
End Function 

EX:

Это в десятичном и я хочу отъ ввести его в TextBox1.Text: «912,697,583,1065,261» и я хочу сделать операцию по каждой группе чисел между запятой а затем преобразовать его в Ascii ???

+0

Это однострочный: Return Val (dec) .ToString ("N0") –

+0

Это в десятичном формате, и я хочу, чтобы он вводил его в текстовое поле1.text: '"912,697,583,1065,261"' , и я хочу сделать операцию для каждой группы чисел между запятой, а затем преобразовать ее в Ascii ??? @ Hans Passant – Goma

+0

Да, это то, что делает этот лайнер. Только две вещи, которые вы можете сделать неправильно, а не пытаться или не сообщать нам, что пошло не так. –

ответ

1

Чтобы разбить строку на группы, вы можете просто использовать команду Split. Ваш код - это длинный способ сделать это - хотя он будет падать, когда он попытается разобраться с четырехзначным числом.

Создать массив строк, без заранее определенного числа элементов, как это -

Dim myArray() 

Заполняем его с этим кодом

туАггау = Split (декабрь, "")

Так что теперь, используя ваш пример ввода, ваш ascii string массив содержит эти данные

myArray (0) = "912"

туАггау (1) = "697"

туАггау (2) = "583"

туАггау (3) = "тысяча шестьдесят-пять"

туАггау (4) = "261"

Если вы хотите иметь номера, которые можно использовать в арифметических операциях, используйте этот код. Функция предполагает, что вы используете целые числа, но если вы хотите использовать другой тип, просто измените все вхождения Integer на тип, который вы хотите обработать, и измените функцию CInt на CDbl или cSng.

Public Shared Function DecimalToASCII(dec As String) As Integer() 
    'create an array of strings 
    Dim ascii() As String 

    'split each group into the array 
    ascii = Split(dec, ",") 

    'declare numbers array that is the same size as the ascii array 
    Dim numbers(ascii.GetUpperBound(0)) As Integer 

    'convert the array of strings to an array of numbers 
    For i As Integer = 0 To ascii.GetUpperBound(0) - 1 
     numbers(i) = CInt(ascii(i)) 
    Next 

    'return an array of numbers containing each group 
    Return numbers 
End Function 

Используйте его как этот

Dim dec As String = "912,697,583,1065,261" 
Dim MyNumbersArray() As Integer = DecimalToASCII(dec) 

С помощью этого кода, вы будете иметь массив Целые как этот

MyNumbersArray (0) = 912

MyNumbersArray (1) = 697

MyNumbersArray (2) = 583

MyNumbersArray (3) = 1065

MyNumbersArray (4) = 261

Теперь вы можете выполнять любые математические вы хотите использовать элементы массива.

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