char lc_key[],lc_data[]
long ll_key ,ll_data,ll_len,i
string ls_datall_key = len(as_key)
ll_data = len(as_data)
if ll_data > ll_key then
as_key = fill(as_key,ll_data)
end iflc_key = as_key
lc_data = as_datall_len = upperbound(lc_data)
for i = 1 to ll_len
ll_data = asc(lc_data[i]) +asc(lc_key[i])
if ll_data > 211 then
ll_data = ll_data -211
end if
ls_data = ls_data + char(ll_data)
nextreturn ls_data

解决方案 »

  1.   

    有这么简单就好了啦,很多东东是不能用的,例如ll_data = asc(lc_data[i]) +asc(lc_key[i])
    在c#中数组就不能相加!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  2.   

    嘿嘿,一段加密函数而已看来你没读明白程序的意思拉!ll_data = asc(lc_data[i]) +asc(lc_key[i])
    是指ascII码相加,而不是数组相加asc()函数将字符转换成ascII码,char()函数将ascII码转换成字符
      

  3.   

    char lc_key[],lc_data[];
    long ll_key ,ll_data,ll_len,i;
    string ls_data;ll_key = len(as_key)
    ll_data = len(as_data)
    if ll_data > ll_key then
    as_key = fill(as_key,ll_data)
    end iflc_key = as_key
    lc_data = as_datall_len = upperbound(lc_data)
    for(int i = 1 ;i<=ll_len;i++)
    {
    ll_data = asc(lc_data[i]) +asc(lc_key[i])
    if ll_data > 211
              {
    ll_data = ll_data -211
    }

    ls_data = ls_data + char(ll_data)
    }return ls_data
      

  4.   

    char lc_key[],lc_data[];
    long ll_key ,ll_data,ll_len,i;
    string ls_data;ll_key = as_key.length;
    ll_data = as_data.length;
    if (ll_data > ll_key) {
     as_key = fill(as_key,ll_data);  此处不知fill函数是什么意思?
    }lc_key = as_key;
    lc_data = as_data;ll_len = lc_data.lenght-1;
    for (i = 1;i<=ll_len;i++){
    ll_data = System.Convert.ToChar(lc_data[i]) +System.Convert.ToChar(lc_key[i]);
    if (ll_data > 211){
    ll_data = ll_data -211;
               }
    ls_data = ls_data + char(ll_data);
    }return ls_data;