Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.09.2016, 16:19
greenMaks greenMaks вне форума
Прохожий
 
Регистрация: 26.09.2016
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Работа с указателями

Переписываю программу на C# и столкнулся с проблемой, никак не пойму как происходит работа с памятью, может кто нибудь объяснить или помочь переписать кусочек, на вход подается бинарник потом записывается в Psh

Код:
  massiv = array [1..9000] of word;
  mkts = array [0..3, 1..6, 1..16] of SmallInt;
  mdl = array [0..3, 1..6, 1..15] of SmallInt;
  msh = array[1..392] of SmallInt;

  TPmkts = ^mkts;
  TPmdl = ^mdl;
  TPmsh = ^msh;

  Pkts: array[1..4, 1..2] of TPmkts = ( (nil, nil),
                                    (nil, nil), (nil, nil), (nil, nil) );
  Pdl: array[1..4, 1..2] of TPmdl = ( (nil, nil),
                                    (nil, nil), (nil, nil), (nil, nil) );
  Psh: array[1..4, 1..2] of TPmsh = ( (nil, nil),
                                    (nil, nil), (nil, nil), (nil, nil) );
begin
...
  New(Pdl[1, 1]);
  New(Pozu[1, 1]);
  Pkts[1, 1]:= @Psh[1, 1]^[9];

  for KCO:=0 to 3 do
    for Tip:=1 to 6 do
    begin
      CCO:=1;
      repeat
        if PKTS[1, 1]^[KCO, Tip, CCO] = (-1) then
          PDL[1, 1]^[KCO, Tip, CCO]:= 0
        else
        begin
          i:=CCO;
          repeat Inc(i);
          until (PKTS[1, 1]^[KCO, Tip, i] <> (-1));
          PDL[1, 1]^[KCO, Tip, CCO]:= PKTS[1, 1]^[KCO, Tip, i] -
                                             PKTS[1, 1]^[KCO, Tip, CCO];
          case Tip of
           2,5  : PDL[1, 1]^[KCO, Tip, CCO]:=
                                         PDL[1, 1]^[KCO, Tip, CCO]*5;
           3,4,6: PDL[1, 1]^[KCO, Tip, CCO]:=
                                         PDL[1, 1]^[KCO, Tip, CCO]*8;
          end; 
        end;
        Inc(CCO);
      until CCO=16;
    end;
..
end
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter