AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Werte werden nicht in Array geschrieben
Thema durchsuchen
Ansicht
Themen-Optionen

Werte werden nicht in Array geschrieben

Ein Thema von Ykcim · begonnen am 27. Jan 2011 · letzter Beitrag vom 27. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#1

Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 14:51
Hallo Zusammen,

ich habe ein Problem, bei welchem ich nicht weiterkomme, zumal es an anderer Stelle nicht auftritt.

Ich habe folgendes Array:
Delphi-Quellcode:
type
  TRows = array of array of string; // [Cols, Rows]
  TCols = array of string;
Das Array, in welches ich schreiben möchte, heißt RowsTEMP und ist vom Typ TRows.

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:
                  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;
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.

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
Miniaturansicht angehängter Grafiken
ueberwachte-variablen.jpg  
Patrick

Geändert von Ykcim (27. Jan 2011 um 14:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:05
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 ?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:06
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:
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;
In diesem Sinne

Ykcim
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:08
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:10
Deshalb solltest Du besser High() verwenden
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:13
Ein Array beginnt bei 0 und nicht bei 1.
Trifft nicht auf alle Arrays zu: XYZ: Array[5..6] of Boolean; Das geht von Index 5 bis 6 - z.B. Darum nicht nur High nutzen, wie DeddyH sagte, sondern ggf. auch Low().
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:21
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
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:34
Hallo,

habe ich noch nie verwendet...

wie würde der Syntax denn bei RowsTEMP[0,k-1] aussehen?

RowsTEMP[0,high()]?

Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:36
RowsTEMP[0, High(RowsTEMP[0])]
oder sogar
RowsTEMP[Low(RowsTEMP), High(RowsTEMP[Low(RowsTEMP)])]
Ist bei mehrdimensionalen Arrays immer etwas unübersichtlich ... finde ich.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Werte werden nicht in Array geschrieben

  Alt 27. Jan 2011, 15:37
RowsTEMP[0,high(RowsTEMP[0])] [edit] *Gnarf* wo war der rote Kasten? [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz