TArray

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TArray

Beitrag von Mathias »

Die Sorucen von Lazarus&FPC sind schon eine ware Goldgrube...

Dies war ursprünglich Delphi-Code. Aber es stimmt schon Pascal bietet recht vieles für ein komfortables Coden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: TArray

Beitrag von mse »

Mathias hat geschrieben:Ich habe gerade eine Merkwürdige Deklaration entdeckt:

Code: Alles auswählen

type
  Ta = array[(a, b, c, d)] of byte;
var
  m:Ta;
begin
  m[a]:=123;
  m[b]:=456;


Dies wird anstandslos kompiliert. :roll:

Es entspricht

Code: Alles auswählen

 
type
 indextyp = (a, b, c, d); //aufzählung
 Ta = array[indextyp] of byte;
 

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TArray

Beitrag von Mathias »

Ich habe gar nicht gewusst, das man eine dynamische Array so initialisieren kann:

Code: Alles auswählen

type
  TBA = array of byte;
var
  BA: TBA;
 
begin
  BA := TBA.Create(5, 2, 3, 4, 1);
 
  WriteLn(Length(BA))// --> 5
  WriteLn(BA[2]);       // --> 3   

Dies funktioniert mit der stable 3.0.4 von FPC.
Für gewisse Sachen recht praktisch, ansonsten müsste man es so machen:

Code: Alles auswählen

  SetLength(BA, 5);
  BA[0] := 5;
  BA[1] := 2;
  BA[2] := 3;
  BA[3] := 4;
  BA[4] := 1;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten