Arbeitest du vielleicht mit einer älteren Version des Compilers?
Irgendwann wurde das mal umgestellt. Bei mir (2.0.7.6) meckert er nicht.
Arbeitest du vielleicht mit einer älteren Version des Compilers?
Irgendwann wurde das mal umgestellt. Bei mir (2.0.7.6) meckert er nicht.
Ja, ich hab hier auf dem PC noch die 2.0.7.3 drauf... Wie wars den vorher? Mein I-net hier ist nicht so der Hit.
Gruß
Chris
In der alten Version ging es so, wie du es anfangs geschrieben hattest, also einfach strar ohne Klammern.
Allerdings hast du bei genauerem Hinsehen noch andere Fehler drin.
Dies hier
Tmp = Searchstring(gps_ovl(1) , Tmp)
wird nicht gehen, weil du gleich zu Anfang den Funktionswert auf 0 setzt und damit wird Tmp auch auf 0 gesetzt.
Zum Testen hast du wohl noch dies drin
Print Asc(strar(i))
in strar(i) steht ja schon der ASCII Wert der Stringzeichen, die Funktion Asc ist also unnötig.
Ja, danke jetzt passts!
Hab gerade in der Hilfe gelesen, dass wenn ich den Wert einer Funktion verändere, die restliche Funktion nicht mehr ausgeführt wird.. WTF?!
Das sollte wohl eigentlich ein Chr anstelle des Asc sein und ich hab mich noch gewundert, warum der mir da mehrstellige Zahlen ausgibt.
Gibts in Bascom die Möglichkeit, einen Parameter optional zu übergeben?
Gruß
Chris
Ich denke, dass du da die Hilfe missverstanden hast.
Es wird nur gesagt, dass du nach dem letzten Setzen des Funktionswertes keine weiteren Befehle mehr ausführen sollst. Das aber auch nur, wenn du den Funktionswert nicht direkt einer Variablen zuweist, sondern in einer anderen Weise verwendest.
Ist bei dir also kein Problem.
Ich halte ByRef für so ähnlich wie einen Pointer. Ein Pointer ist ja eine Adresse und du musst explizit sagen, dass du den Wert an dieser Adresse haben willst und nicht die Adresse selber. Pointer kannst ja auch inkrementieren um das nächste Speicherelement zu bekommen. Eine ByRef Variable zeigt aber immer auf den Inhalt und gibt die nicht die Adresse. Da ist das Ergebnis der VarPtr() Funktion schon ähnlicher.
Im SWStack steht immer die Adresse des übergebenen Parameters, also entweder in die globalen Variablen im SRAM, wenn mit ByRef übergeben wurde oder in den Frame bei Übergabe mittels ByVal.
Optionale Übergabe wüsste ich nicht.
Hm das hab ich dann wohl wirklich falsch verstanden.
Ja, ein richtiger Pointer scheints nicht zu sein, aber ich werds trotzdem weiterhin so benennen
Ok, alles klar! Danke für deine kompetente Hilfe.
Gruß
Chris
Lesezeichen