Thema: Delphi array [0..0] ?

Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: array [0..0] ?

  Alt 31. Aug 2007, 15:51
Diese Deklaration kann so richtig sein. Es ist der prinzipielle Hinweis, dass es sich um ein statisches Array handelt, von dem man allerdings die Länge nicht kennt. Meistens steht die Länge an einer anderen Stelle (wie man an deinem C-Code auch sieht).

du kannst jetzt auf verschiedene Art an den Feldinhalt kommen:
1. Du definierst dir ein statisches Array, was groß genug ist, und benutzt eben nur die ersten NumberOfItems Elemente.
2. Du nimmst einen Pointer von WLAN_INTERFACE_INFO und gehst damit durch die Liste.


2. ist meistens schöner und könnte so aussehen:
Delphi-Quellcode:
type PINTERFACE_INFO=^INTERFACE_INFO
     INTERFACE_INF0=packed record
      //...was auch immer
end;
type WLAN_INTERFACE_INFO_LIST=packed record
      dwNumberOfItems:DWORD;
      dwIndex:DWORD;
      WLAN_INTERFACE_INFO:array[0..0] of INTERFACE_INFO;
end;

//...

var i:integer;
    PInfo:PInterface_Info;
begin
  PInfo:=@InfoList.WLAN_Interface_Info;
  for i:=1 to InfoList.numberofitems do
  begin
    PInfo^.xyz
    //zugriff auf das Feld
     
    inc(PInfo); //aufs nächste Feld schieben
  end;
end;
Je nach Gegebenheit gibt es auch noch andere Lösungen...
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat