Einzelnen Beitrag anzeigen

mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#7

AW: Zeitkritische Array-Prüfung

  Alt 21. Dez 2014, 12:41
"Goto" hin oder her, wenn statische voll Arrays wegen der stets max. Speichergöße ausfallen, dann würde ich mit 2 zusätzlichen IndexPointerArrays arbeiten, welche beim Update der Daten in "RenewData(Map);" mit erzeugt werden... das Resultat ist dann schon "etwas schöner" und auch schneller

Nachfolgendes nur mal so als PyseudoCode, weil ev. ein paar "End" oder Pointer noch noch falsch

Code:
function RaiseAlert(): Boolean;
var
  liMap,liCha: Integer;
  pMapIdx,pChaIdx: ^<DataType>;
 
label
  GotoLabel;
begin

GotoLabel:

  while (ThrottleLoop) and not (Terminated) do
   begin
    pMapIdx:=@MapIdx[0];
    for liMap := 0 to Length(MapIdx) - 1 do
     begin
          pChaIdx:=@CharacteristicsIdx[0];
          for liCha := 0 to Length(CharacteristicsIdx) - 1 do
           begin
            if pChaIdx^ = pMapIdx^ then
             begin
              if (InjectionPass) then
               begin
                InjectionPass := false;
                Goto GotoLabel;
               end else begin
                Result := true;
                Exit;
               end;
              end;
             end;

            inc(pChaIdx);
           end;
         inc(pMapIdx);
        end;
     end;

    RenewData(Map);

   end;
  Result := false;

end;
  Mit Zitat antworten Zitat