Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Unterfunktion und Array als Rückgabewert?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Unterfunktion und Array als Rückgabewert? (2404 mal gelesen)
dersummi
Mitglied



Sehen Sie sich das Profil von dersummi an!   Senden Sie eine Private Message an dersummi  Schreiben Sie einen Gästebucheintrag für dersummi

Beiträge: 43
Registriert: 03.11.2006

erstellt am: 28. Jan. 2007 19:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

servus!

Mitlerweile habe ich mich immer weiter in die Programmierung eingearbeitet und auch meine Makros werden immer zuverlässiger und übersichtlicher.

Da ich gerne bei einem Makro mit einer unterfunkion arbeiten möchte, stehe ich derzeit vor einem Problem. Einfache Rückgabe werte wie 1 oder 2 sind klar und laufen. nun möchte ich aber gerne ein array zurückgeben, also z.b.

...
dir = ausrichtung xp, yp ,zp  'aufruf der unterfunction
...
end sub

privat function ausrichtung (x , y ,z)
dim xyz(2)
...'unterfunktion macht was
ausrichtung = xyz
end function

ist das möglich? oder kann ich nur EINEN Wert zurückgeben in der form:
ausrichtung = 1

mir würde es auch helfen wenn ich das array als string umgewandelt bekommen, wenn ich dann den string als rückgabewert nutzen kann. den string würde ich später dann wieder aufsplitten.

oder vll kann ich auch die variable "xyz" so definieren, das ich sei auch ausserhalb der unterfunktion verwenden kann?

danke im vorraus

grüsse matthias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Goosnargh
Mitglied



Sehen Sie sich das Profil von Goosnargh an!   Senden Sie eine Private Message an Goosnargh  Schreiben Sie einen Gästebucheintrag für Goosnargh

Beiträge: 80
Registriert: 30.11.2004

erstellt am: 29. Jan. 2007 11:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dersummi 10 Unities + Antwort hilfreich

Also zum einen gehts so wie Du es geschrieben hast(benutzt Du CATScript oder VBA?)

Ansonsten kannste auch ne globale Variable deklarieren. Also
Oberhalb vom Sub:

Dim xyz(2) as Integer

Sub CatMain()

...
End Sub


Dann kannste xyz in jeder Sub benutzen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

dersummi
Mitglied



Sehen Sie sich das Profil von dersummi an!   Senden Sie eine Private Message an dersummi  Schreiben Sie einen Gästebucheintrag für dersummi

Beiträge: 43
Registriert: 03.11.2006

erstellt am: 29. Jan. 2007 16:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

das mit der globalen varaible funzt - da hätte ih auch selber drauf kommen ;-)

nur das andere nicht, aber das ist dann auch nicht so schlimm

danke

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Proofin
Mitglied
Dpl.Ing


Sehen Sie sich das Profil von Proofin an!   Senden Sie eine Private Message an Proofin  Schreiben Sie einen Gästebucheintrag für Proofin

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 30. Jan. 2007 09:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dersummi 10 Unities + Antwort hilfreich

Moin Matthias,

meines Wissens nach kann man keine Arrays als Rückgabewert angeben.
Was du als Alternativ zu der globalen Variable machen kannst, gib der Funktion einen Parameter für den Rückagbewert mit.
z.B:
privat function ausrichtung (x, y, z, byref Erg())
dim xyz(2)
...'unterfunktion macht was
Erg = xyz
end function

Gruß
Proofin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Goosnargh
Mitglied



Sehen Sie sich das Profil von Goosnargh an!   Senden Sie eine Private Message an Goosnargh  Schreiben Sie einen Gästebucheintrag für Goosnargh

Beiträge: 80
Registriert: 30.11.2004

erstellt am: 31. Jan. 2007 17:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dersummi 10 Unities + Antwort hilfreich

Klar gehts:

Sub TestMyArrayFunction()

Dim Test
Test = IrgendeinArray

MsgBox IrgendeinArray(2)

End Sub

Function IrgendeinArray()
Dim Werte(3) As Integer

Werte(1) = 1
Werte(2) = 2
Werte(3) = 3

IrgendeinArray = Werte

End Function

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz