Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2012, 08:30   #1
flesyyykkk
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 21
По умолчанию перевести с Js на delphi пару строк ога

сабж
Код:
		var utf_1 = parseInt(X.substring(0, 2), 16) - (Y * 2);
		var utf_2 = parseInt(X.substring(2), 16) - (Y * 2);
		utf_1 = utf_1.toString(16);
		utf_2 = utf_2.toString(16);
		utf_1 = utf_1.substring(1) + utf_1.substring(0, 1);
		utf_2 = utf_2.substring(1) + utf_2.substring(0, 1);
всем мир
flesyyykkk вне форума Ответить с цитированием
Старый 31.07.2012, 10:08   #2
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

В Delphi необходимо явно указывать тип переменной, так что один к одному перевести не получится. Если исходить из того что X имеет тип string, Y - тип integer то данный код можно записать как-то так так
Код:
var
  utf_1, utf_2: Integer;

  function HexToInt(const aHex: string): Integer;
  begin
    Result := StrToInt('$' + aHex);
  end;

  procedure TrimLeftZero(var aString: string);
  var
    i: integer;
  begin
    if aString <> '' then
    begin
      i := 1;
      while (i <= Length(aString)) and (aString[i] = '0') do
        Inc(i);
      if (i > 1) and (i <= Length(aString)) then
        aString := Copy(aString, i, Length(aString) - pred(i))
      else if i > Length(aString) then
        aString := '';
    end;
  end;

  function Raschet(const Vhod:Integer):Integer;
  var
    s:string;
  begin
    s:=IntToHex(Vhod, 8); //utf_1 = utf_1.toString(16);
    TrimLeftZero(s);
    s:=Copy(s,2,pred(Length(s)))+s[1];
    Result:=HexToInt(s)
  end;

begin
  utf_1 := HexToInt(Copy(x, 1, 2)) - (Y * 2);//var utf_1 = parseInt(X.substring(0, 2), 16) - (Y * 2);
  utf_2 := HexToInt(Copy(x, 3, Length(x)-2)) - (Y * 2);//var utf_2 = parseInt(X.substring(2), 16) - (Y * 2);
  utf_1:=Raschet(utf_1);
  utf_2:=Raschet(utf_2);
end;
Если X число то предварительно преобразуйте его в строку с 16-ым представлением с помощью IntToHex

Последний раз редактировалось astecenko; 31.07.2012 в 10:12.
astecenko вне форума Ответить с цитированием
Старый 31.07.2012, 16:59   #3
flesyyykkk
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 21
По умолчанию

astecenko,
X изначально строка примерно такого вида 030F
Спасибо, попробую..
flesyyykkk вне форума Ответить с цитированием
Старый 31.07.2012, 17:23   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

По-моему, что-то вроде такого:

Код:
var
  X: String;
  Y: Integer;
  utf_1, utf_2: String;
begin
  X := '030F';
  Y := ???;

  utf_1 := IntToHex(StrToInt('$' + Copy(X, 1, 2)) - Y * 2, 2);
  utf_2 := IntToHex(StrToInt('$' + Copy(X, 3, 2)) - Y * 2, 2);

  utf_1 := utf_1[2] + utf_1[1];
  utf_2 := utf_2[2] + utf_2[1];
end;
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка подсчетом. Прокомментируйте пару строк bev94 Помощь студентам 0 13.04.2012 18:24
Прокоментировать пару строк кода kilogram PHP 9 28.03.2012 23:20
Перевести с СИ++ на язык СИ (пару строк) DesignFootball.Ru Помощь студентам 17 07.11.2011 17:20
Прокоментируйте пару строк stenl1 Общие вопросы C/C++ 70 22.07.2011 21:34
Расшифровать подробно пару строк программы prikolist Общие вопросы C/C++ 4 25.03.2009 22:50