JAVASCRIPT в Delphi

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by androgin, 29 Nov 2010.

  1. androgin

    androgin Banned

    Joined:
    2 Mar 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    доброе время суток, могли бы вы мне подсказать как можно перевести javascript в код на делфи

    var i;
    var r="";
    var l=s.length-1;
    var k=s.substr(l,1);
    for (i=0;i<l;i++)
    { c=s.charCodeAt(i)-k;
    if(c<32){ c=127-(32-c);}
    r+=String.fromCharCode(c);
    }
    return r;
    Редактировать/Удалить сообщение
     
  2. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    JavaScript -> Delphi

    Code:
    var 
     I : Integer;
     R : string;
     K : string;
     l : Integer;
    begin
     l := length(s)-1;
     k := copy(s, l, 1);
     for I := 0 To l do
     begin
      if (c < 32) Then C := 127-(32-c);
      R := R + c; [color=yellow][i](*хз, что за [u]fromCharCode[/u] *)[/color][/i]
      result := r;
     end;
    
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 RedFern.89 ну зачем человека вводить в заблуженение не правильным переводом?
     
  4. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    slesh, видимо я еще не до конца понел яваскрипт)) переведи учитель ;))

    upd: пропустил строчку. щас норм сделаю
     
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Code:
    var
      i : integer;
      k : integer;
      l : integer;
      c : byte;
      r : string;
      s : string;  
    begin
      s := 'hello_world9'; // это чисто пример строки входной
      l := length(s) - 1;
      k := strtoint(s[l + 1]);
      r := '';
    
      for i := 1 to l do
      begin
        c := ord(s[i]) - k;
        if c < 32 then c := 127 - (32 - c);
        r := r + chr(c);
      end;
      ShowMessage(r); // для примера покажем что получилось после расшифровки
    end;
    
     
    #5 slesh, 29 Nov 2010
    Last edited: 29 Nov 2010
  6. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    видимо как-то так..

    Code:
    var
      I : Integer;
      l : Integer;
      r : string;
      k : string;
    begin
      r := '';
      l := Length(s);
      k := copy(s, l, 1);
      
      for i := 0 to l do
      begin
    	c := ord(str[i]) -k;
    	if (C < 32) Then c := 127-(32-c);
    	  r := r + chr(c);
      end;
    end;
    
     
    #6 RedFern.89, 29 Nov 2010
    Last edited: 29 Nov 2010
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 RedFern.89 ты забываешь 2 вищи:
    1) в JS строки как ив Си - начинаются с нулевого элемента а не с первого в как в делфи
    2) в JS не типизированные переменные по этому если считал что-то и начал использовать это как число, то оно и будет автоматом переведено в число
     
  8. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0

    очень блгодарен)) сунулся я нетуда)) признаю ошибку((