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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4060
Beiträge: 38484
Benutzer: 6.365
Aktive Benutzer: 240
Links: 80
Wir begrüßen unseren neuesten Benutzer: Steffen123
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einem Tag
- Steffen123
vor 2 Tagen
- UZander
vor 2 Tagen
- harryb
vor 3 Tagen
- Blade-13
vor 3 Tagen
- Dumbinatio...

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 49
Gesamt: 50
Team: 0
Team:  
Benutzer:  Leopold
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By traderdoc
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 09.04.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
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?
  #2 (permalink)  
Alt 09.04.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.095
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.
  #3 (permalink)  
Alt 09.04.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
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?
Thema geschlossen

Lesezeichen

Stichworte
function return, mql4, programmierung, programmierung metatrader, programmierung mql4, return function, varibale, wert


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 17:07 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.
-----------------------------------------------------------------------------------------------------------------------------