Forum: Programmieren allgemein
by DeddyH,
26. Okt 2011
Ich habe mal eine Mini-Demo erstellt, läuft einwandfrei (nur ein Memo und ein Button auf der Form):
procedure TForm1.Button1Click(Sender: TObject);
type
TSpalten = array of string;
TZeilen = array of TSpalten;
var
Zeilen: TZeilen;
i: integer;
s: string;
begin
Forum: Programmieren allgemein
by DeddyH,
25. Okt 2011
Oder wie schon gesagt die Parameter nicht als Var deklarieren und auf das Array wie von Bummi und mir gezeigt zugreifen. Wobei man sich überlegen könnte, Cols als statisches Array zu deklarieren, da anscheinend immer die gleiche Elementanzahl vorausgesetzt wird.
Forum: Programmieren allgemein
by DeddyH,
25. Okt 2011
Also sagen wir den Standardsatz: "Zeichma mehr Kot" :-D
Forum: Programmieren allgemein
by DeddyH,
25. Okt 2011
Aber wenn, dann außerhalb der gezeigten Routine, schließlich sind das Var-Parameter. Wäre ja blöde, wenn die anders wieder rauskommen, als sie reingekommen sind ;)
Forum: Programmieren allgemein
by DeddyH,
25. Okt 2011
Hatte ich das nicht bereits so ähnlich geschrieben?
Forum: Programmieren allgemein
by DeddyH,
25. Okt 2011
So wie ich das verstehe ist Rows ein 2-dimensionales Array in der Art . Wenn dem so ist, dann ist die Schleife definitiv falsch, da ja damit "diagonal" gelesen wird. IMO müsste das stattdessen ungefähr so aussehen:
for i := Low(Rows) to High(Rows) do
begin
s := '';
for j := Low(Rows) to High(Rows) do
//String zusammensetzen
s := s + Rows + ',';
Stringliste.Add(s);...
Forum: Programmieren allgemein
by DeddyH,
25. Okt 2011
Du übergibst durch die Var-Deklaration Deine Arrays by Reference. Laut Code ist das aber unnötig, da Du die Originalwerte ja nicht innerhalb der Routine ändern willst. Du könntest einmal das Var durch Const ersetzen, das erscheint mir sinnvoller. Und wie sind TCols bzw. TRows deklariert? Irgendwie habe ich das Gefühl, dass Deine Indizes nicht stimmen.
Forum: Programmieren allgemein
by DeddyH,
25. Okt 2011
Wieso sind das eigentlich Var-Parameter? Und Deine Schleife verstehe ich nicht, wenn ich ehrlich bin.