tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1477
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    maxi Tutorials.de Gastzugang
    Hi Leute !

    Ich hab eine Funktion, die als Parameter ein Array will.

    Public Function fnFunction(Feld() As Integer) As Integer

    Global KFZ() As Integer
    ReDim KFZ(0 To AnzahlEinzelTeile)
    ZuOberst = fnFunction(KFZ)

    das t ja.

    Aber jetzt hab ich ein Zweidimensionales Array. und das check ich nicht.

    Global S() As Integer
    ReDim S(1 To AnzahlStapel, 1 To AnzahlEinzelTeile)

    ZuOberst = fnFunction(S(1))

    geht nicht: unverträglicher Typ: Datenfeld erwartet.

    ok, ich könnte die Spalte vom 2d Array in ein 1d Array umkopieren, und dann dieses als Parameter verwenden.
    Oder eine zweite function schreiben, die ein 2d array will + den Spaltenindex.
    schwachsinn.
    gibts hier irgendeine möglichkeit, die Spalte eines 2DArrays zu der funktion zu übergeben ?

    oder soll ich gleich mit Range statt Array arbeiten (keine Ahnung, was besser, schneller usw. ist) ?
     

  2. #2
    SkojA Tutorials.de Gastzugang
    Servus,

    dim ArrFeld(2) as string

    ArrFeld(0) = "a"
    ArrFeld(1) = "b"
    ArrFeld(2) = "c"

    msgbox ArrFeld(1) ' Meldet >>>> b


    anders:

    dim ArrFeld(2,2) as string

    ArrFeld(0,0) = "a"
    ArrFeld(0,1) = "b"
    ArrFeld(0,2) = "c"
    ArrFeld(1,0) = "d"
    ArrFeld(1,1) = "e"
    ArrFeld(1,2) = "f"
    ArrFeld(2,0) = "g"
    ArrFeld(2,1) = "h"
    ArrFeld(2,2) = "i"

    msgbox ArrFeld(0,1) ' Meldet >>>> b
    msgbox ArrFeld(2,0) ' Meldet >>>> g
    msgbox ArrFeld(1,1) ' Meldet >>>> e



    also zb.:
    fnErgebnis(ArrFeld(2,1))

    mfg
    SkojA
     

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ein doppelter Array musst du als Variant oder Variant() übergeben....

    Code vb:
    1
    2
    3
    4
    
    public function myFunction(myField() as Variant) return integer
    ...
    'oder
    public function myFunction(myField as Variant) return integer
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  4. #4
    maximus007 Tutorials.de Gastzugang
    hi leute !
    sorry. war skifahren.
    Danke für eure Antworten. aber leider ...

    @ skoja: ich will nicht ein Element eines Feldes übergeben, sondern eine ganze Spalte eines Arrays.
    auch @yaslaw: ein ganzes 2D-Array kann ich übergeben. das t.

    mein Problem ist: ich will EINE Funktion einmal mit einem 1D Array und dann mit der Spalte eines 2D-Arrays aufrufen.

    Function fnFunction(Feld() As Integer) As Integer

    und dann diese aufrufen mit einem 1D Feld:

    x= fnFunction(Array) das geht.

    aber beim 2d Feld gibts Probleme:

    x=fnFunction(Gitter(1))
    oder
    x=fnFunction(Gitter(2)

    dim gitter(2,10)
     

  5. #5
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Code vb:
    1
    
    public function myFunction(myValue as Variant) return integer

    Abschliessend myValue analysieren (is_array etc) um mit dem entsprechenden Type zu abreiten.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  6. #6
    öaslkjdfökldq Tutorials.de Gastzugang
    das prob ist beim Aufruf. (ich möchte nur eine Spalte des 2D-Arrays übergeben)
    Auch bei den Überwachungsausdrücken kommt dieselbe Meldung:

    Watch : - : stapel : : Integer(1 to 2, 1 to 10) : Main.fnLegsAufStapel
    - : stapel(1) : : Integer(1 to 10) : Main.fnLegsAufStapel

    Watch : : stapel(1) : <Index außerhalb des gültigen Bereichs> : Integer : Main.fnLegsAufStapel


    ok. Stapel(1,1) spricht EIN Element des Datenfeldes an.
    Aber: Wie kann man eine Spalte (oder Reihe) eines Datenfeldes direkt ansprechen, oder muss mann das wirklich in eine andere Variable (1D-Datenfeld) umkopieren
     

  7. #7
    SkojA Tutorials.de Gastzugang
    for fori = 0 to 3
    funktion(array(1,fori))
    next fori

    sowas ?!
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 13.03.10, 10:22
  2. Zeiger auf einen Array als Parameter für Funktion
    Von Pumafire im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 04.11.09, 00:51
  3. Antworten: 4
    Letzter Beitrag: 22.02.05, 22:02
  4. Antworten: 3
    Letzter Beitrag: 17.02.05, 18:18
  5. 2D Integer Array an eine Funktion übergeben
    Von kirashet im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 09.03.04, 09:47