Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3946
Beiträge: 37722
Benutzer: 6.244
Aktive Benutzer: 417
Links: 80
Wir begrüßen unseren neuesten Benutzer: Mojo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 17 Stunden
- Mojo
vor 22 Stunden
- daybyter
vor 4 Tagen
- Marcel83
vor einer Woche
- Megaule
vor einer Woche
- faanx

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 60
Gesamt: 60
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Werbung

Like Tree1Likes
  • 1 Post By traderdoc
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 55
AVT befindet sich auf einem aufstrebenden Ast
Question function return mit mehreren Werten

Wo muß ich suchen, um rauszufinden, ob und wie man es hinkriegt, mehrere Werte gleichzeitig von einer Funktion rauszugeben und dann zu übernehmen. Beispiel:
Code:
int funcX()
{
   // calc a and b
   return(a,b);
}
Die letzte Zeile, also das return wird moniert, wobei ich nicht weiß, als was das angesehen wird. Bisher habe ich den Umweg über strings genommen, also Umwandeln in
Code:
string funcX()
{
   // calc a and b
   ReturnString=StringConcatenate(a,"§",b);
   return(ReturnString);
}
und dann das ganze über StringSplit wieder auseinandernehmen. Aber das muß doch auch einfacher gehen - außer 2 fast identische Funktionen zu schreiben (eine für a und eine für b).
Danke. AVT
__________________
heute schon gelacht?
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.987
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Man kann nur 1 Wert per return zurückgeben.

Ansonsten muss man über die Referenzierung gehen, gemäß dieses Beispiels:

Code:
/+-------------------------------------------------------------------+
//| Parameterübergabe nach Verweis                                                |
//+------------------------------------------------------------------+
double SecondMethod(int   &i,  int   &j) {
   double res;
   i* = 2;
   j /= 2;

   res = i+j;
   return (res);
}
//+------------------------------------------------------------------+
//| Script program start function                                                     |
//+------------------------------------------------------------------+
void  OnStart () {
    int  a = 14, b = 8;
    Print ("a und b vor dem Aufruf:", a, " ", b);
    double d = SecondMethod(a,b);
    Print ("a und b nach dem Aufruf:", a, " ", b);
}
//+------------------------------------------------------------------+
//--- Ergebnis der Scriptdurchführung 
//  a und b vor dem Aufruf: 14 8
//  a und b nach dem Aufruf: 28 4
Hierbei wird ein Wert über return zurückgegeben und die anderen beiden Ergebnisse
zu a und b werden nach der Berechnung an die Referenz zurückgegeben.

Arrays können z.B. nur!! über Referenzierung in einer Funktion übergeben werden.

traderdoc
AVT likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 55
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Man kann nur 1 Wert per return zurückgeben.
Ansonsten muss man über die Referenzierung gehen, gemäß dieses Beispiels:
... snip ...

Hierbei wird ein Wert über return zurückgegeben und die anderen beiden Ergebnisse
zu a und b werden nach der Berechnung an die Referenz zurückgegeben.

Arrays können z.B. nur!! über Referenzierung in einer Funktion übergeben werden.

traderdoc
Danke traderdoc! Das erleichtert alles ungemein. AVT
__________________
heute schon gelacht?
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

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




Alle Zeitangaben in WEZ +2. Es ist jetzt 16:36 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------