![]() |
Delphi-Version: 5
Zahl in Variablenbezeichung einbauen
Hallo,
Ich möchte den Quelltext vereinfachen. Ich habe die 10 Variablen Zahl1, Zahl2 usw. bis Zahl5 sowie Ergebnis1 bis Ergebnis5. Mit allen 5 Variablen "Zahl" soll jetzt das gleiche gemacht werden. Um jetzt nicht alles fünfmal das gleich zu schreiben, wollte ich in etwas sowas machen: for i:= 1 to 5 do begin ... end wobei ich dann immer mit Zahl[i] und Ergebnis[i] arbeite. Das geht aber so nicht, zumindest bei Strings wäre ja dann immer die Stelle i gemeint. Ich hoffe, ich konnte mein Problem einigermaßen verständlich ausdrücken. Wie kann ich das jetzt richtig machen? |
AW: Zahl in Variablenbezeichung einbauen
Also dass es Arrays gibt, hast du anscheinend schon mitbekommen:
Delphi-Quellcode:
Was du evtl. missverstehst ist das hier:
procedure TForm1.Button1Click(Sender: TObject);
var Zahl: array[1..10] of Integer; Ergebnis: array[1..10] of String; i: Integer; begin for i := 1 to 10 do begin Zahl[i] := i; Ergebnis[i] := 'Ergebnis' + IntToStr(i); end; for i := 1 to 10 do ShowMessage(IntToStr(Zahl[i]) + Ergebnis[i]); end;
Delphi-Quellcode:
Sieht ähnlich aus, liefert aber unterschiedliche Ergebnisse. Das eine Ergebnis[i] ist ein Array, das andere Ergebnis[1] im Grunde ein Char. Mit Ergebnis[i] sagst du dem Array, das er die den i-ten String ausgeben soll, mit Ergebnis[1] sagst Delphi, dass du das erste Zeichen des Strings haben willst. Ist etwas verwirrend, weil gleich.
procedure TForm1.Button1Click(Sender: TObject);
var Ergebnis: String; begin Ergebnis := 'Ergebnis'; ShowMessage(Ergebnis[1]); end; Was macht man aber wenn man das erste Zeichen eines Array-Strings haben will? Einfach das
Delphi-Quellcode:
Wenn es ein Array ist, dann ist die erste [x] Angabe der Array und der zweite der Char. Ist es ein String, ist die erste [x] Angabe der Char.
for i := 1 to 10 do
ShowMessage(IntToStr(Zahl[i]) + Ergebnis[i][1]); |
AW: Zahl in Variablenbezeichung einbauen
Also grundsätzlich:
mehrere Werte in einer Variable = eine Liste von "Variablen", bzw. ein Array davon |
AW: Zahl in Variablenbezeichung einbauen
Zitat:
Beides wäre u.U. und mit gewissen Verrenkungen möglich, ist aber ganz schlechter Programmierstil. Wie die anderen hier schon gezeigt haben, benötigst du ein Array – eine Ansammlung gleichartiger Typen, die über einen Index angesprochen werden. Am besten wäre es wohl, du machst dir einen neuen Typen, hier einen Record, der die beiden Objekte Zahl und Ergebnis enthält:
Delphi-Quellcode:
Mit diesem Typen legst du dir nun ein Array an:
Type
TMeinTyp = Record Zahl, Ergebnis : Integer; end;
Delphi-Quellcode:
Nun kannst du das Array einfach befüllen (oder auslesen):
Var
MeinArray : Array[1..5] of TMeinTyp;
Delphi-Quellcode:
Ergänzung: Das T in TMeinTyp stellt man deshalb einem Typbezeichner voran, um ihn beim Programmieren deutlich als Typ erkennen zu können.
MeinArray[1].Zahl := 1;
MeinArray[1].Ergebnis := 5; |
AW: Zahl in Variablenbezeichung einbauen
Zitat:
Ein String ist im Grunde genommen ein 'Array Of Char' (ja gut, ein wenig mehr). Ergo funktioniert der Zugriff auch genauso wie bei einem Array. |
AW: Zahl in Variablenbezeichung einbauen
@Dejan Vu
Zitat:
K-H |
AW: Zahl in Variablenbezeichung einbauen
@p80286: Was willst Du mir damit sagen? So ganz kommentarlose Zitate sind ja nun auch nicht der Bringer. Lies dir einfach mal Popovs Beitrag durch und dann wirst Du merken, das er einmal von String und einmal von Char im Bezug auf 'myString[i]' spricht. Das er das eigentlich verstanden hat, merkt man ja auch.
|
AW: Zahl in Variablenbezeichung einbauen
Danke für die Antworten.
Popovs beitrag hat mir eigentlich schon gereicht, jetzt weiß ich, wie ich es machen kann. :) Carl |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz