[gelöst] Record in Array speichern

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

[gelöst] Record in Array speichern

Beitrag von TerribleCode »

Hey Leute, ich bin´s mal wieder...

Ich habe eine Text-Datei in der etwa sowas steht:

Code: Alles auswählen

1=Gelb=True
2=Rot=False
...
Ich habe dann einen kleine record und ein array erstellt:

Code: Alles auswählen

type ColorRec = record
  Number: Integer;
  Name: String;
  SomeBoolean: Boolean;
end;
var
  ColorInfo: ColorRec;
  InfoArray: array of ColorRec;
Aber das hier geht leider ich:

Code: Alles auswählen

SetLength(InfoArray,1);
InfoRecord.Number:=1;
InfoRecord.Name:='Gelb';
InfoRecord.SomeBoolean:=True;
InfoArray[1]:=InfoRecord;
Es kommt immer ein RunError(201)?
Was mache ich falsch?

Und bitte steinigt mich nicht gleich wieder... :mrgreen:
Ich programmiere wirklich nur Hobbymäßig zum Spaß und habe nie eine Ausbildung in diese Richtung gemacht!
Naja...

Danke schonmal,
und grüße an die Community.
Zuletzt geändert von TerribleCode am Mo 16. Nov 2015, 11:47, insgesamt 1-mal geändert.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Record in Array speichern

Beitrag von Socke »

TerribleCode hat geschrieben:

Code: Alles auswählen

SetLength(InfoArray,1);
InfoRecord.Number:=1;
InfoRecord.Name:='Gelb';
InfoRecord.SomeBoolean:=True;
InfoArray[1]:=InfoRecord;
Es kommt immer ein RunError(201)?
Was mache ich falsch?
Der Index eines dynamischen Arrays beginnt immer mit 0. D.h.

Code: Alles auswählen

InfoArray[0]:=InfoRecord;
Der RunError(201) weist darauf hin, dass der Array-Index außerhalb der zulässigen Werte liegt: http://www.freepascal.org/docs-html/user/userap4.html
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

Wie peinlich!

Beitrag von TerribleCode »

Ohje... Wie peinlich! :oops:
Danke dir, vor allem für die schöne Liste mit den run-time errors...

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

Re: [gelöst] Record in Array speichern

Beitrag von Mathias »

Als kleiner Typ, du kannst auch direkt in den Record der Array schreiben.

Code: Alles auswählen

SetLength(InfoArray,1);
InfoArray[0].Number:=1;
InfoArray[0].Name:='Gelb';
InfoArray[0].SomeBoolean:=True;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten