Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: 

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужен перевочик
 
 автор: ddi   (09.11.2011 в 17:08)   личное сообщение
 
 

Луюди кто поможет перевести из иностраного языка (Java(скрипт)) в вб ?

//initialize
var ANSI = new Array();
var UNICODE = new Array();

for(var i = 178; i <= 252; i+=2){
    ANSI.push(i); //mecatar ANSI
    UNICODE.push(1328 + (i-176)/2); //mecatar Unicode
    ANSI.push(i+1); //poqratar ANSI
    UNICODE.push(1376 + (i-176)/2); //poqratar Unicode
}
ANSI.push(39);        UNICODE.push(0x587); //ev

ANSI.push(183);        UNICODE.push(8226);    //poqratar g-n (bullet)
ANSI.push(8226);    UNICODE.push(1379);    //poqratar g-n (bullet)

ANSI.push(39);        UNICODE.push(0x55A); //apostrophe
ANSI.push(176);        UNICODE.push(0x55B); //shesht
ANSI.push(175);        UNICODE.push(0x55C); //bacakanchakan
ANSI.push(170);        UNICODE.push(0x55D); //but
ANSI.push(177);        UNICODE.push(0x55E); //harcakan
ANSI.push(163);        UNICODE.push(0x589); //verjaket
ANSI.push(173);        UNICODE.push(0x58A); //hyphen
ANSI.push(167);        UNICODE.push(0xAB); //bacvogh chakert
ANSI.push(166);        UNICODE.push(0xBB); //pakvogh chakert
ANSI.push(171);        UNICODE.push(0x2C); //storaket
ANSI.push(169);        UNICODE.push(0x2E); //mijaket
ANSI.push(174);        UNICODE.push(0x2026); //bazmaket

ANSI.push(0,0);        UNICODE.push(0,0); //2 hat CUSTOM :)
// end

function convert(from, to, A2U){
    arrFrom = A2U ? ANSI : UNICODE;
    arrTo = A2U ? UNICODE : ANSI;
    
    var ekac = document.getElementById(from).value;
    var gnacogh = "";
    var len = ekac.length;
    var tar;
    var current; //boolean
    
    for(var i=0; i<len; i++){
        tar = ekac.charCodeAt(i);
        FromumKa=false;
        for(var j=0; j<arrFrom.length; j++){
            if(tar==arrFrom[j]){
                if(arrTo[j]=="") {FromumKa=true; break;}
                gnacogh += String.fromCharCode(arrTo[j]);
                FromumKa = true;
                break;
            }
        }
        if(!FromumKa) gnacogh += String.fromCharCode(tar);
    }
    document.getElementById(to).value = gnacogh;
}

  Ответить  
 
 автор: ddi   (09.11.2011 в 17:31)   личное сообщение
 
 

  Ответить  
 
 автор: osmor   (10.11.2011 в 08:52)   личное сообщение
 
 

document.getElementById(from).value - тоже переводить ?
Совсем переводить времени нет, но могу дать подстрочник

  Ответить  
 
 автор: ddi   (10.11.2011 в 09:11)   личное сообщение
 
 

нет я это сам зделаю)

  Ответить  
 
 автор: ddi   (10.11.2011 в 09:12)   личное сообщение
 
 

ок давай

  Ответить  
 
 автор: ddi   (10.11.2011 в 09:26)   личное сообщение
 
 

я так понял саздаёца два масива
и там добалаёца данные

For i As Integer = 178 To 252 Step 2 ' 32 строк автомат

и 16 в ручную

  Ответить  
 
 автор: ddi   (10.11.2011 в 09:35)   личное сообщение
 
 

var ANSI = new Array(), ANSI.push(i) какой еквивалент в вб ?

  Ответить  
 
 автор: osmor   (10.11.2011 в 09:53)   личное сообщение
 
 

var ANSI = new Array();
var UNICODE = new Array();

for(var i = 178; i <= 252; i+=2){
    ANSI.push(i); //mecatar ANSI
    UNICODE.push(1328 + (i-176)/2); //mecatar Unicode
    ANSI.push(i+1); //poqratar ANSI
    UNICODE.push(1376 + (i-176)/2); //poqratar Unicode
}
ANSI.push(39);        UNICODE.push(0x587); //ev

ANSI.push(183);        UNICODE.push(8226);    //poqratar g-n (bullet)
ANSI.push(8226);    UNICODE.push(1379);    //poqratar g-n (bullet)

ANSI.push(39);        UNICODE.push(0x55A); //apostrophe
ANSI.push(176);        UNICODE.push(0x55B); //shesht
ANSI.push(175);        UNICODE.push(0x55C); //bacakanchakan
ANSI.push(170);        UNICODE.push(0x55D); //but
ANSI.push(177);        UNICODE.push(0x55E); //harcakan
ANSI.push(163);        UNICODE.push(0x589); //verjaket
ANSI.push(173);        UNICODE.push(0x58A); //hyphen
ANSI.push(167);        UNICODE.push(0xAB); //bacvogh chakert
ANSI.push(166);        UNICODE.push(0xBB); //pakvogh chakert
ANSI.push(171);        UNICODE.push(0x2C); //storaket
ANSI.push(169);        UNICODE.push(0x2E); //mijaket
ANSI.push(174);        UNICODE.push(0x2026); //bazmaket

ANSI.push(0,0);        UNICODE.push(0,0); //2 hat CUSTOM :)
// end

// правильно создаешь 2 массива
кусок заполняешь на циклом а кусок руками 
push - добавление данных в массив с
 увеличением размерности массива ну типа нашего redim (или сразу опиши массив 
нужного размера)
function convert(from, to, A2U){
// если  A2U - истина, то массив arrFrom 
принимает значения из массива ANSI, если 
ЛОЖЬ, то из массива UNICODE
   arrFrom = A2U ? ANSI : UNICODE;
// если  A2U - истина, то массив arrTo 
принимает значения из массива UNICODE, 
если ЛОЖЬ, то из массива ANSI
    arrTo = A2U ? UNICODE : ANSI;
 // получаем значение из поля   
    var ekac = document.getElementById(from).value;
    var gnacogh = "";
// len - длина строки
    var len = ekac.length;
    var tar;
    var current; //boolean
 // перебираем все символы исходной строки   
    for(var i=0; i<len; i++){
// получаем код символа в позиции i исходной строки
        tar = ekac.charCodeAt(i);
        FromumKa=false;
// перебираем все элементы массива arrFrom
        for(var j=0; j<arrFrom.length; j++){
// если полученный из строки символ равен 
символу в массиве arrFrom на позиции J
            if(tar==arrFrom[j]){
// если в массиве arrTo в этой позиции J 
пустое значение - выход из цикла
                if(arrTo[j]=="") {FromumKa=true; break;}
// если в массиве arrTo этот элемент (J) 
не пустой (else для if(arrTo[j]=="")
// к результирующей строке добавлем символ 
полученный из кода который содержится в 
массиве arrTo на позиции J
                gnacogh += String.fromCharCode(arrTo[j]);
                FromumKa = true;
// выход из цикла перебора массива arrFrom
                break;
            } // end if для     if(tar==arrFrom[j])
        } // next J для  for(var j=0; j<arrFrom.length; j++) 
получаем следующий элемент массива arrFrom
// если совпадений символа (точнее кода символа) 
из исходной строки в массиве arrFrom не найдено, 
то к результирующей строке добавляем 
символ полученный из кода символа исходной 
строк (т.е. ничего не конвертируем)
        if(!FromumKa) gnacogh += String.fromCharCode(tar);
    } // next I для  for(var i=0; i<len; i++) перемещаемся на след. символ в исходной строке
// результирующую строку выводим в поле
    document.getElementById(to).value = gnacogh;


Все

я отошел на 40 минут.

  Ответить  
 
 автор: ddi   (10.11.2011 в 10:29)   личное сообщение
 
 

osmor огромное тебе спасибо (но я это понял) мне нужно в вб зделать
var ANSI = new Array(); и ANSI.push(39) еквивалент в вб как ?

  Ответить  
 
 автор: ddi   (10.11.2011 в 10:31)   личное сообщение
 
 

так ReDim ANSI(i)

  Ответить  
 
 автор: osmor   (10.11.2011 в 10:38)   личное сообщение
 
 

или redim или просто сразу опиши массив нужного размера

  Ответить  
 
 автор: ddi   (10.11.2011 в 10:56)   личное сообщение
 
 

как ? извени я про масиви нечего не знаю

  Ответить  
 
 автор: ddi   (10.11.2011 в 10:57)   личное сообщение
 
 


        Dim ANSI() As Array
        Dim UNICODE() As Array
        For i As Integer = 178 To 252 Step 2
            ReDim ANSI(i) : ReDim UNICODE(1328 + (i - 176) / 2)   ' metatar
            ReDim ANSI(i + 1) : ReDim UNICODE(1376 + (i - 176) / 2) ' poqratar
        Next

  Ответить  
 
 автор: osmor   (10.11.2011 в 11:23)   личное сообщение
 
 

Как-то так

Dim ANSI(90) As Long
Dim UNICODE(90) As Long
Dim i As Integer
Dim j As Integer
i = 1
 For j = 178 To 252 Step 2
   ANSI(i) = j
   UNICODE(i) = 1328 + (j - 176) / 2
   i = i + 1
   ANSI(i) = j + 1
    UNICODE(i) = 1376 + (j - 176) / 2
   i = i + 1

  Next j
ANSI(i) = 39:         UNICODE(i) = CLng("&H587")
i=i+1
ANSI(i) = 183 :        UNICODE(i) = 8226
i=i+1
....... и т.д.

  Ответить  
 
 автор: ddi   (10.11.2011 в 11:54)   личное сообщение
 
 

ANSI.push(0,0); UNICODE.push(0,0); //2 hat CUSTOM а это как ?
то массив arrFrom принимает значения из массива ANSI как это ?

  Ответить  
 
 автор: osmor   (10.11.2011 в 12:00)   личное сообщение
 
 

ANSI.push(0,0); UNICODE.push(0,0); - 2 последних элемента в массивах равны 0

то массив arrFrom принимает значения из массива ANSI как это ?


Перебрать все символы одного массива присваивая значения элементов другому т.е. цикл по всему массиву

  Ответить  
 
 автор: ddi   (10.11.2011 в 14:37)   личное сообщение
 
 

Function convert(str As String, tip As String) As String
convert = vbNull
Dim nstr As String = vbNull
Dim ANSI(93) As Long
Dim UNICODE(93) As Long
Dim x As Long = 1
For i As Integer = 178 To 252 Step 2
ANSI(x) = i : UNICODE(x) = 1328 + (i - 176) / 2 ' metatar
ANSI(x) = i + 1 : UNICODE(x) = 1376 + (i - 176) / 2 : x = x + 1 ' poqratar
Next
ANSI(x) = 39 : UNICODE(x) = CLng("&H587") : x = x + 1 'ev
ANSI(x) = 183 : UNICODE(x) = 8226 : x = x + 1 'poqratar g-n (bullet)
ANSI(x) = 8226 : UNICODE(x) = 1379 : x = x + 1 'poqratar g-n (bullet)
ANSI(x) = 39 : UNICODE(x) = CLng("&H55A") : x = x + 1 'apostrophe
ANSI(x) = 176 : UNICODE(x) = CLng("&H55B") : x = x + 1 'shesht
ANSI(x) = 175 : UNICODE(x) = CLng("&H55C") : x = x + 1 'bacakanchakan
ANSI(x) = 170 : UNICODE(x) = CLng("&H55D") : x = x + 1 'but
ANSI(x) = 177 : UNICODE(x) = CLng("&H55E") : x = x + 1 'harcakan
ANSI(x) = 163 : UNICODE(x) = CLng("&H589") : x = x + 1 'verjaket
ANSI(x) = 17 : UNICODE(x) = CLng("&H58A") : x = x + 1 'hyphen
ANSI(x) = 167 : UNICODE(x) = CLng("&HAB") : x = x + 1 'bacvogh chakert
ANSI(x) = 166 : UNICODE(x) = CLng("&HBB") : x = x + 1 'pakvogh chakert
ANSI(x) = 171 : UNICODE(x) = CLng("&H2C") : x = x + 1 'storaket
ANSI(x) = 169 : UNICODE(x) = CLng("&H2E") : x = x + 1 'mijaket
ANSI(x) = 174 : UNICODE(x) = CLng("&H2026") : x = x + 1 'bazmaket
ANSI(x) = 0 : UNICODE(x) = 0
Select tip
Case "a"
For l = 0 To ANSI.Length - 1
For x = 1 To Len(str)
If Asc(Mid(str, x, 1)) = ANSI(l) Then
nstr = nstr & ChrW(UNICODE(l))
MsgBox(ChrW(UNICODE(l)))
End If
Next
Next
Case "u"
End Select
convert = nstr
End Function
Где ошибка?

  Ответить  
 
 автор: ddi   (10.11.2011 в 14:57)   личное сообщение
 
 

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList