Frage zu Typdeklaration

Forum für alles rund um die MSEide und MSEgui

Re: Frage zu Typdeklaration

Beitragvon mse » 28. Sep 2017, 10:03 Re: Frage zu Typdeklaration

fliegermichl hat geschrieben:Kann man in Pascal ein mehrdimensionales Array mit unterschiedlich langen Reihen definieren?

Nur mit dynamischen arrays.
Ich würde eine zentrale Zugriffsfunktion definieren, etwa so:
Code: Alles auswählen
 
type
 dachtypenty =
  (dt_none,
   dtpultdach, dtsatteldach, dtwalmdach, dtkrueppelwalmdach, dtzeltdach,
   dtturm, dtmansarddach1, dtmansarddach2, dtwinkelbau, dt3giebelbau,
   dttbau, dttonnendach, dtrechteckbau, dtlbau, dthbau, dtschleppgaube,
   dtsattelgaube, dtwalmgaube,
   dtkrueppelwalmgaube, dtspitzgaube, dttrapezgaube, dttonnengaube,
   dtschweifgaube, dtfledermausgaube, dtkamin, dtdachfenster
  );
 steildachtypen = dtpultdach..dttonnendach;
 flachdachtypen = dtrechteckbau..dthbau;
 gaubentypen = dtschleppgaube..dtfledermausgaube;
 
 dachgruppenty = (dg_steildach,dg_flachdach,dg_gauben);
 gruppeninfoty = record
  first,last: dachtypenty;
 end;
 
const
 gruppeninfo: array[dachgruppenty] of gruppeninfoty =
  ((first: low(steildachtypen); last: high(steildachtypen)),
   (first: low(flachdachtypen); last: high(flachdachtypen)),
   (first: low(gaubentypen); last: high(gaubentypen))
  );
 
function getdachtyp(const gruppe: int32; item: int32): dachtypenty;
                                //zero based values
begin
 result:= dt_none;
 if (gruppe >= ord(low(dachgruppenty))) and
                           (gruppe <= ord(high(dachgruppenty))) then begin
  with gruppeninfo[dachgruppenty(gruppe)] do begin
   item:= item + ord(first);
   if (item >= ord(first)) and (item <= ord(last)) then begin
    result:= dachtypenty(item);
   end;
  end;
 end;
end;
 

(ungeprüft!).
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 28. Sep 2017, 10:23 Re: Frage zu Typdeklaration

Ja Danke so geht es. Aber ganz schön umständlich im Vergleich zu der PHP Version.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

• Themenende •
Vorherige

Zurück zu MSEide und MSEgui



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried