Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевести код из VB в C#, Оч. надо 
V
    Опции темы
Syrex
Дата 13.3.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: нет
Всего: 1



Если написал не в тот раздел - сильно не ругайте. Оч. надо перевести данный код!!!
Помогите кто чем сможет!!
Код

//--------------------------------------------
'Строка штрих-кода в кодировке Code 128
Public Function Code_128(A As String) As String
    Dim BCode(0 To 1023) As Integer
    Dim BInd As Integer
    Dim CurMode As String
    Dim Ch As Integer
    Dim Ch2 As Integer
    Dim I As Integer
    Dim LenA As Integer
    Dim CCode As Integer
    Dim S As String
    Dim BarArray As Variant
    
    'Собираем строку кодов
    BInd = 0
    CurMode = ""
    I = 1
    LenA = Len(A);
    While I <= LenA
        'Текущий символ в строке
        Ch = Asc(Mid(A, I, 1))
        I = I + 1
        'Разбираем только символы от 0 до 127
        If Ch <= 127 Then
            'Следующий символ
            If I <= LenA Then
                Ch2 = Asc(Mid(A, I, 1))
            Else
                Ch2 = 0
            End If
            'Пара цифр - режим C
            If (48 <= Ch) And (Ch <= 57) And _
               (48 <= Ch2) And (Ch2 <= 57) Then
                I = I + 1
                If BInd = 0 Then
                    'Начало режима C
                    CurMode = "C"
                    BCode(BInd) = 105
                    BInd = BInd + 1
                ElseIf CurMode <> "C" Then
                    'Переключиться на режим C
                    CurMode = "C"
                    BCode(BInd) = 99
                    BInd = BInd + 1
                End If
                'Добавить символ режима C
                BCode(BInd) = CInt(Chr(Ch) & Chr(Ch2))
                BInd = BInd + 1
            Else
                If BInd = 0 Then
                    If Ch < 32 Then
                        'Начало с режима A
                        CurMode = "A"
                        BCode(BInd) = 103
                        BInd = BInd + 1
                    Else
                        'Начало с режима B
                        CurMode = "B"
                        BCode(BInd) = 104
                        BInd = BInd + 1
                    End If
                End If
                'Переключение по надобности в режим A
                If (Ch < 32) And (CurMode <> "A") Then
                    CurMode = "A"
                    BCode(BInd) = 101
                    BInd = BInd + 1
                'Переключение по надобности в режим B
                ElseIf ((64 <= Ch) And (CurMode <> "B")) Or (CurMode = "C") Then
                    CurMode = "B"
                    BCode(BInd) = 100
                    BInd = BInd + 1
                End If
                'Служебные символы
                If (Ch < 32) Then
                    BCode(BInd) = Ch + 64
                    BInd = BInd + 1
                'Все другие символы
                Else
                    BCode(BInd) = Ch - 32
                    BInd = BInd + 1
                End If
            End If
        End If
    Wend
    'Подсчитываем контрольную сумму
    CCode = BCode(0) Mod 103
    For I = 1 To BInd - 1
        CCode = (CCode + BCode(I) * I) Mod 103
    Next I
    BCode(BInd) = CCode
    BInd = BInd + 1
    'Завершающий символ
    BCode(BInd) = 106
    BInd = BInd + 1
    'Собираем строку символов шрифта
    'BarArray = Array("155", "515", "551", "449", "485", "845", "458", "494", "854", _
        "548", "584", "944", "056", "416", "452", "065", "425", "461", "560", "506", _
        "542", "164", "524", "212", "245", "605", "641", "254", "614", "650", "119", _
        "191", "911", "089", "809", "881", "098", "818", "890", "188", "908", "980", _
        "01:", "092", "812", "029", "0:1", "821", "221", "182", "902", "128", "1:0", _
        "122", "209", "281", ":01", "218", "290", ":10", "230", "5<0", ";00", "04=", _
        "0<5", "40=", "4<1", "<05", "<41", "05<", "0=4", "41<", "4=0", "<14", "<50", _
        "=40", "50<", "320", "=04", "830", "047", "407", "443", "074", "434", "470", _
        "344", "704", "740", "113", "131", "311", "00;", "083", "803", "038", "0;0", _
        "308", "380", "023", "032", "203", "302", "A", "B", "C", "@")
    S = ""
    For I = 0 To BInd - 1
        S = S & Code_Char(Code_128_ID(BCode(I)))
        'S = S & BarArray(BCode(I))
    Next I
    Code_128 = S
End Function

PM MAIL ICQ   Вверх
mr.DUDA
Дата 13.3.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



У меня код не компилится: массив в конце не присваивается таким способом, не определена функция Code_Char и Code_128_ID, есть другие синтаксические ошибки. В бейсике не шарю, поэтому исправить не могу.

По поводу перевода: компилируем в exe или длл, открываем в рефлекторе, ставим язык С#, Ctrl+C и всё, код на шарпе у нас.


--------------------
user posted image
PM MAIL WWW   Вверх
Syrex
Дата 13.3.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: нет
Всего: 1



Правильно. Те части, что он требует я уже перевел на C#. 
А что такое рефлектор?!
PM MAIL ICQ   Вверх
archimed7592
Дата 13.3.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Код
        public String Code_128 (String A)
        {
    //      Dim BCode(0 To 1023) As Integer
            int[] BCode = new int [1024];
    //      Dim BInd As Integer
            int BInd;
    //      Dim CurMode As String
            String CurMode;
    //      Dim Ch As Integer
            int Ch;
    //      Dim Ch2 As Integer
            int Ch2;
    //      Dim I As Integer
            int I;
    //      Dim LenA As Integer
            int LenA;
    //      Dim CCode As Integer
            int CCode;
    //      Dim S As String
            String S;
    //      Dim BarArray As Object
            String[] BarArray;

    //      'Собираем строку кодов
    //      BInd = 0
            BInd = 0;
    //      CurMode = ""
            CurMode = "";
    //      I = 1
            I = 1;
    //      LenA = Len(A)
            LenA = A.Length;
    //      While I <= LenA
            while (I <= LenA)
            {
    //          'Текущий символ в строке
    //          Ch = Asc(Mid(A, I, 1))
    //          I = I + 1
                Ch = (int) A [I++];
    //          'Разбираем только символы от 0 до 127
    //          If Ch <= 127 Then
                if (Ch <= 127)
                {
    //              'Следующий символ
    //              If I <= LenA Then
                    if (I <= LenA)
    //                  Ch2 = Asc(Mid(A, I, 1))
                        Ch2 = (int) A [I];
    //              Else
                    else
    //                  Ch2 = 0
                        Ch2 = 0;
    //              End If
                }
    //            'Пара цифр - режим C
    //          If (48 <= Ch) And (Ch <= 57) And 
    //             (48 <= Ch2) And (Ch2 <= 57) Then
                if (48 <= Ch && Ch <= 57 && 48 <= Ch2 && Ch2 <= 57)
                {
    //              I = I + 1
                    I++;
    //              If BInd = 0 Then
                    if (BInd == 0)
                    {
    //                  'Начало режима C
    //                  CurMode = "C"
                        CurMode = "C";
    //                  BCode(BInd) = 105
    //                  BInd = BInd + 1
                        BCode [BInd++] = 105;
    //                  ElseIf CurMode <> "C" Then
                    }
                    else if (CurMode != "C")
                    {
    //                  'Переключиться на режим C
    //                  CurMode = "C"
                        CurMode = "C";
    //                  BCode(BInd) = 99
    //                  BInd = BInd + 1
                        BCode [BInd++] = 99;
    //              End If
                    }
    //              'Добавить символ режима C
    //              BCode(BInd) = CInt(Chr(Ch) & Chr(Ch2))
    //              BInd = BInd + 1
                    BCode [BInd++] = int.Parse (new String (new char[] {Convert.ToChar (Ch), Convert.ToChar (Ch2)}));
                }
    //          Else
                else
                {
    //                If BInd = 0 Then
                    if (BInd == 0)
                    {
    //                    If Ch < 32 Then
                        if (Ch < 32)
                        {
    //                        'Начало с режима A
    //                        CurMode = "A"
                            CurMode = "A";
    //                        BCode(BInd) = 103
    //                        BInd = BInd + 1
                            BCode [BInd++] = 103;
                        }
    //                    Else
                        else
                        {
    //                        'Начало с режима B
    //                        CurMode = "B"
                            CurMode = "B";
    //                        BCode(BInd) = 104
    //                        BInd = BInd + 1
                            BCode [BInd++] = 104;
    //                    End If
                        }
    //                End If
                    }
    //                'Переключение по надобности в режим A
    //                If (Ch < 32) And (CurMode <> "A") Then
                    if (Ch < 32 && CurMode != "A")
                    {
    //                    CurMode = "A"
                        CurMode = "A";
    //                    BCode(BInd) = 101
    //                    BInd = BInd + 1
                        BCode [BInd++] = 101;
    //                    'Переключение по надобности в режим B
                    }
    //                ElseIf ((64 <= Ch) And (CurMode <> "B")) Or (CurMode = "C") Then
                    else if ((64 <= Ch && CurMode != "B") || (CurMode == "C"))
                    {
    //                    CurMode = "B"
                        CurMode = "B";
    //                    BCode(BInd) = 100
    //                    BInd = BInd + 1
                        BCode [BInd++] = 100;
    //                End If
                    }
    //                'Служебные символы
    //                If (Ch < 32) Then
                    if (Ch < 32)
                    {
    //                    BCode(BInd) = Ch + 64
    //                    BInd = BInd + 1
                        BCode [BInd++] = Ch + 64;
    //                    'Все другие символы
                    }
    //                Else
                    else
                    {
    //                    BCode(BInd) = Ch - 32
    //                    BInd = BInd + 1
                        BCode [BInd] = Ch - 32;
    //                End If
                    }
    //            End If
                }
    //          End If
                
    //    End While
            }
    //    'Подсчитываем контрольную сумму
    //    CCode = BCode(0) Mod 103
            CCode = BCode [0] % 103;
    //    For I = 1 To BInd - 1
            for (I = 1; 1 < BInd; ++I)
    //        CCode = (CCode + BCode(I) * I) Mod 103
    //    Next I
                CCode = (CCode + BCode [I] * I) % 103;
    //    BCode(BInd) = CCode
    //    BInd = BInd + 1
            BCode [BInd++] = CCode;
    //    'Завершающий символ
    //    BCode(BInd) = 106
    //    BInd = BInd + 1
            BCode [BInd++] = 106;
    //    'Собираем строку символов шрифта
    //    'BarArray = Array("155", "515", "551", "449", "485", "845", "458", "494", "854", 
    //    '"548", "584", "944", "056", "416", "452", "065", "425", "461", "560", "506", 
    //    '"542", "164", "524", "212", "245", "605", "641", "254", "614", "650", "119", 
    //    '"191", "911", "089", "809", "881", "098", "818", "890", "188", "908", "980", 
    //    '"01:", "092", "812", "029", "0:1", "821", "221", "182", "902", "128", "1:0", 
    //    '"122", "209", "281", ":01", "218", "290", ":10", "230", "5<0", ";00", "04=", 
    //    '"0<5", "40=", "4<1", "<05", "<41", "05<", "0=4", "41<", "4=0", "<14", "<50", 
    //    '"=40", "50<", "320", "=04", "830", "047", "407", "443", "074", "434", "470", 
    //    '"344", "704", "740", "113", "131", "311", "00;", "083", "803", "038", "0;0", 
    //    '"308", "380", "023", "032", "203", "302", "A", "B", "C", "@")
            BarArray = new String[] {"155", "515", "551", "449", "485", "845", "458", "494", "854", 
        "548", "584", "944", "056", "416", "452", "065", "425", "461", "560", "506", 
        "542", "164", "524", "212", "245", "605", "641", "254", "614", "650", "119", 
        "191", "911", "089", "809", "881", "098", "818", "890", "188", "908", "980", 
        "01:", "092", "812", "029", "0:1", "821", "221", "182", "902", "128", "1:0", 
        "122", "209", "281", ":01", "218", "290", ":10", "230", "5<0", ";00", "04=", 
        "0<5", "40=", "4<1", "<05", "<41", "05<", "0=4", "41<", "4=0", "<14", "<50", 
        "=40", "50<", "320", "=04", "830", "047", "407", "443", "074", "434", "470", 
        "344", "704", "740", "113", "131", "311", "00;", "083", "803", "038", "0;0", 
        "308", "380", "023", "032", "203", "302", "A", "B", "C", "@"};

    //    S = ""
            S = "";
    //    For I = 0 To BInd - 1
            for (I = 0; I < BInd; ++I)
            {
    //        S = S & Code_Char(Code_128_ID(BCode(I)))
    //        'S = S & BarArray(BCode(I))
    //    Next I
            }
    //    Code_128 = S
    //End Function
        }

enjoy smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Naum
Дата 13.3.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



Цитата(Syrex @  13.3.2007,  15:00 Найти цитируемый пост)
А что такое рефлектор?!

Lutz Roeder's .NET Reflector & Co



--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Syrex
Дата 13.3.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: нет
Всего: 1



Огромное всем спасибо!!!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0885 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.