Site Announcements

Liebe Gäste des Forums, wir freuen uns, dass ihr zu uns gelangt seid.
Windev ist eine sehr umfangreiche und starke Entwicklerumgebung für Anwendungen unter Windows, Linux und Internetapplikationen inkl. Mobile.
Hier sind Antworten und Anregungen dazu zu finden!
Möchtest du aktiv mitschreiben? Dann melde dich durch Klick auf den Text "Registrieren" hier rechts oberhalb an.

array of array(s)

Alle Themen rund um die Erstellung von Programmen

array of array(s)

Beitragvon FDominicus » 27. November 2017, 14:38

Auch eine Sache, die ich nicht verstehe:

Code: Alles auswählen
PROCEDURE TestProc3()

   tArr1 is array of arrays of 2 int
   tPartArr1 is array of 2 int
   
   tArr2 is Variant
   tPartArr2 is Variant
   
   // tArr1 = [ [1,2],
   //         [3,4]]
           
   tArr2 =  [[ 1,2],
             [3,4]]
            
            
   tPartArr1 = tArr2[1]
   
   tPartArr2 = tArr2[1]            




Die Initialisierung von tArr1 funktioniert nicht. Eine Zuweisung wie untern von eine Variant zu einem array of 2 int funktioniert und auch die Zuweisung von einer Variant zu einer anderen.

Warum kann man tArr1 nicht so initialisieren?

funktionieren tut:
Code: Alles auswählen
  ArrayInsert(tArr1, 1, [1,2])
  ArrayInsert(tArr1, 2, [3,4])

FDominicus
Junior Member
 
Beiträge: 21
Registriert: 9. Mai 2015, 08:19
Has thanked: 0 time
Have thanks: 0 time

Re: array of array(s)

Beitragvon Herbert » 28. November 2017, 21:33

Herbert
Site Admin
 
Beiträge: 352
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Has thanked: 5 times
Have thanks: 3 times

Re: array of array(s)

Beitragvon FDominicus » 30. November 2017, 14:49

Code: Alles auswählen

PROCEDURE TestProc3()

   tArr1 is array of 2,2 int
   tPartArr1 is array of 2 int
   
   tArr2 is Variant
   tPartArr2 is Variant
   
   tArr3 is array of arrays of 2 int
   
   // ArrayInsert(tArr1, 1, [1,2])
   // ArrayInsert(tArr1, 2, [3,4])
   // //         [3,4]]
   
   tArr1[1] = [1,2]
   tArr1[2] = [3,4]
           
   tArr2 =  [[ 1,2],
             [3,4]]
            
            
   tPartArr1 = tArr1[1]
   
   tPartArr2 = tArr2[1]            




Ergibt Fehler:
Error:Array with 2 dimension(s): unable to access it with 1 dimension(s).
GlobalProcedures.TestProc3, Local Procedure, line 22, column 19
Error:Array with 2 dimension(s): unable to access it with 1 dimension(s).
GlobalProcedures.TestProc3, Local Procedure, line 16, column 7
Error:Array with 2 dimension(s): unable to access it with 1 dimension(s).
GlobalProcedures.TestProc3, Local Procedure, line 15, column 7
Warning : The local variable 'tArr3' is not used.
GlobalProcedures.TestProc3, Local Procedure, line 9, column 2

Was ich haben möchte ist schon ein Feld mit einem Feld von 2 int Elementen

Also [[1,2],[3.4]]
Und FeldAussen[1] = [1,2]

Jedenfalls klappt es mit Array Insert genau so.
Code: Alles auswählen
PROCEDURE TestProc3()

   tArr1 is array of array of 2 int
   tPartArr1 is array of 2 int
   
   tArr2 is Variant
   tPartArr2 is Variant
   
   tArr3 is array of arrays of 2 int
   
   ArrayInsert(tArr1, 1, [1,2])
   ArrayInsert(tArr1, 2, [3,4])
   // //         [3,4]]
   
   tPartArr1 = tArr1[1]
   
   tPartArr2 = tArr2[1]          




Gehe ich über die Vaiant Schiene funktioniert es auch ohne Probleme
FDominicus
Junior Member
 
Beiträge: 21
Registriert: 9. Mai 2015, 08:19
Has thanked: 0 time
Have thanks: 0 time

Re: array of array(s)

Beitragvon Herbert » 30. November 2017, 17:44

Klar geht das.
Nur ist ArrayInsert für 1-dim Arrays. Siehe Beschreibung.
https://doc.windev.com/en-US/?3075009&name=ArrayInsert
Herbert
Site Admin
 
Beiträge: 352
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Has thanked: 5 times
Have thanks: 3 times


Zurück zu Programmierung allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron