![]() |
Werte werden nicht in Array geschrieben
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
ich habe ein Problem, bei welchem ich nicht weiterkomme, zumal es an anderer Stelle nicht auftritt. Ich habe folgendes Array:
Delphi-Quellcode:
Das Array, in welches ich schreiben möchte, heißt RowsTEMP und ist vom Typ TRows.
type
TRows = array of array of string; // [Cols, Rows] TCols = array of string; Jedes Mal, bevor ich in das Array schreiben, füge ich eine weitere Zeile hinzu, da ich vorher nie weiß, wieviele Zeilen es werden. Hier das Code-Fragment:
Delphi-Quellcode:
Aus irgendeinem Grund werden die Daten aus dem Array Rows1 nicht in das Array RowsTEMP geschrieben. Ich bin im Debug-Modus durchgegangen. In dem Array Rows1[0,J] steht der Wert '165413'. Wenn ich den Wert RowsTEMP[0,k] überwache, wird dieser mir mit dem gleichen Wert ausgewiesen. Gucke ich aber ganz allgemein in das Array RowsTEMP, dann sehe ich, dass dort keine Werte reingeschrieben werden.
if (Rows1[10,j]<>'9') and (copy(Rows1[7,j],0,2)=Prozess) then
begin k:=k+1; setlength( ColsTEMP,13); setlength(RowsTEMP, Length(ColsTEMP),k); //Daten schreiben RowsTEMP[0,k]:=Rows1[0,J]; RowsTEMP[1,k]:=Rows1[1,J]; RowsTEMP[2,k]:=Rows1[2,J]; RowsTEMP[3,k]:=Rows1[3,J]; RowsTEMP[4,k]:=Rows1[4,J]; RowsTEMP[5,k]:=Rows1[5,J]; RowsTEMP[6,k]:=Rows1[6,J]; RowsTEMP[7,k]:=Rows1[7,J]; RowsTEMP[9,k]:=Rows1[8,J]; RowsTEMP[10,k]:=Rows1[9,J]; RowsTEMP[11,k]:=Rows1[10,J]; j:=j+1; end; Ich habe ein Bild angehängt, um die überwachten Variablen anzuzeigen... Kennt jemand das Probelm und hat vielleicht jemand eine Lösung dafür? Vielen Dank Ykcim |
AW: Werte werden nicht in Array geschrieben
Hast Du die Bereichsüberprüfung aktiviert und Dir auch mal j und k ausgeben lassen, nicht daß k in einen ungültigen Bereich zeigt ?
|
AW: Werte werden nicht in Array geschrieben
Man bastelt tagelang herum und findet nichts. Dann fragt man die Spezialisten und auf einmal fällt es einem wie Schuppen aus den Haaren...
Ich habe das "-1" vergessen. Ein Array beginnt bei 0 und nicht bei 1. mit diesem Code funktioniert es!
Delphi-Quellcode:
In diesem Sinne
if (Rows1[10,j]<>'9') and (copy(Rows1[7,j],0,2)=Prozess) then
begin k:=k+1; setlength( ColsTEMP,13); setlength(RowsTEMP, Length(ColsTEMP),k); //Daten schreiben RowsTEMP[0,k-1]:=Rows1[0,J]; RowsTEMP[1,k-1]:=Rows1[1,J]; RowsTEMP[2,k-1]:=Rows1[2,J]; RowsTEMP[3,k-1]:=Rows1[3,J]; RowsTEMP[4,k-1]:=Rows1[4,J]; RowsTEMP[5,k-1]:=Rows1[5,J]; RowsTEMP[6,k-1]:=Rows1[6,J]; RowsTEMP[7,k-1]:=Rows1[7,J]; RowsTEMP[9,k-1]:=Rows1[8,J]; RowsTEMP[10,k-1]:=Rows1[9,J]; RowsTEMP[11,k-1]:=Rows1[10,J]; j:=j+1; end; Ykcim |
AW: Werte werden nicht in Array geschrieben
Hallo Bummi,
Du hast recht, wie ich gerade beschrieben habe, habe ich mein Array nicht bei 0, sondern bei 1 versucht zu beschreiben... Vielen Dank Ykcim |
AW: Werte werden nicht in Array geschrieben
Deshalb solltest Du besser High() verwenden ;)
|
AW: Werte werden nicht in Array geschrieben
Zitat:
Delphi-Quellcode:
Das geht von Index 5 bis 6 - z.B. :wink: Darum nicht nur High nutzen, wie DeddyH sagte, sondern ggf. auch Low().
XYZ: Array[5..6] of Boolean;
|
AW: Werte werden nicht in Array geschrieben
Das ist zwar bei dynamischen Arrays nicht notwendig, aber der Vollständigkeit halber hast Du Recht. Ich persönlich habe mir das auch irgendwann angewöhnt, jedesmal Low() und High() zu verwenden, dann muss man gar nicht weiter nachdenken, damit das immer passt ;)
|
AW: Werte werden nicht in Array geschrieben
Hallo,
habe ich noch nie verwendet... wie würde der Syntax denn bei RowsTEMP[0,k-1] aussehen? RowsTEMP[0,high()]? Ykcim |
AW: Werte werden nicht in Array geschrieben
Delphi-Quellcode:
RowsTEMP[0, High(RowsTEMP[0])]
oder sogar
Delphi-Quellcode:
RowsTEMP[Low(RowsTEMP), High(RowsTEMP[Low(RowsTEMP)])]
Ist bei mehrdimensionalen Arrays immer etwas unübersichtlich ... finde ich. |
AW: Werte werden nicht in Array geschrieben
Delphi-Quellcode:
[edit] *Gnarf* wo war der rote Kasten? [/edit]
RowsTEMP[0,high(RowsTEMP[0])]
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 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