Variablen nach Größe sortieren
Guten Tag,
ich möchte eine größere Anzahl an einzelnen Variablen nach Größe des jeweiligen Wertes in ein Array sortieren sowie den Namen der jeweiligen Variable als String Array ablegen. Es geht um das Anzeigen einer sortierten Liste auf dem Chart mit Name der Variable sowie des dazugehörigen Wertes. Variablenreihe der Quelle zB: var1 = 10; var2 = 5; var3 = -13; var4 = 55; usw Die Chartzeichnung würde ich fix definieren also 1. Reihe WertArray[0] und NameArray[0] 2. Reihe WertArray[1] und NameArray[1] 3. Reihe WertArray[2] und NameArray[2] 4. Reihe WertArray[3] und NameArray[3] usw Große bis kleine Werte sollen inlusiv Variablenbezeichnung, von der Variablenreihe der Quell-Variablen in die ZielArrays, als Wert und Name von oben nach unten einsortiert werden. Ergebniss sollte so aussehen: WertArray[0] = 55 und NameArray[0] = var4 WertArray[1] = 10 und NameArray[1] = var2 WertArray[2] = 5 und NameArray[2] = var1 WertArray[3] = -13 und NameArray[3] = var3 So ist erstmal die Grundidee, ich weiss jetzt nur nicht wie ich die ganze Sache sortiere, also wie die QuellVariablen der Größe nach in Wert- und String- Arrays sortiert werden??? lg C$D ps: ich arbeite mit MetaEditor v509 |
Sortieren kann man Arrays über die Funktion
ArraySort() entweder auf- oder absteigend. Vorher mit ArrayCopy() das alte Array sichern und nach dem Sortieren, die Elemente des sortierten Arrays bzgl. des Index im alten Array suchen und in NameArray[i] abspeichern. traderdoc |
Prima das Sortieren klappt schonmal aber das Definieren vom QuelleArray mit den vorhandenen Variabeln macht Probleme und die Variablennamen rauszuziehen liegt über meinem KnowHow. Hier mal der aktuelle Stand:
Code:
// Test-Quellvariablen |
Code:
double var1 = 10; traderdoc |
Prima bis zum IntegerToString alles klasse nur wäre noch eine Fehlermeldung:
IntegerToString - function is not defined |
Build 509 ist aber ganz schön antiquiert.
Aktuell sollte die bei mindestens 765 liegen. Dann käme der Fehler auch nicht. Gut, dann nimm else Name[i] = j; oder else Name[i] = DoubleToStr(j, 0); traderdoc |
Herzlichen dank für die Hilfe doc! Fast perfekt jetzt kommt als Name 3 0 1 2 das stimmt mit der Reihenfolger überein aber es ist noch nicht der eigentliche Name der Variable. Wenn die Ursprungsvariablen var1 var2 var3 var4 heißen wäre es klasse wenn auch diese Bezeichnung entsprechen im Name-Array abgelegt wird also statt 3 0 1 2 die variablenbeschriftung var4 var1 var2 var3
lg C$D |
Code:
double var1 = 10; traderdoc |
Perfekt ! Danke doc !
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 23:33 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum