Seite 2 von 2
Verfasst: 11.12.2004 09:53
von Falko
>> kommt man nicht aus der gewohnheit...
nööö, aber aus einigen Beispielen aus der Hilfe wie z.B.:
Chr()
Syntax
Text$ = Chr(ASCII-Wert)
Beschreibung
Gibt das zum angegebenen ASCII Wert gehörende Zeichen zurück.
a$ = Chr(33) ; a$ enthält das Zeichen "!"
Unterstützte OS
Windows, AmigaOS, Linux
String - Inhaltsverzeichnis
Verfasst: 18.02.2005 17:31
von Skiller
Hallo Folks,
passt vielleicht ganz gut hier rein; und zwar:
wie kann ich den Typ einer Var abfragen?
Var1$ = "Hallo"
Var2 = 12345
also z.B. TYPE("Var1") = "C" bzw. "S"
TYPE("Var2") = "N"
Hat jemand ´ne Idee ?
Skiller
Verfasst: 18.02.2005 23:29
von Lars
Skiller hat geschrieben:wie kann ich den Typ einer Var abfragen?
Gar nicht. Ist aber auch in diesem beispiel nicht so besonders nützlich,
eigentlich weißt du, was für einen Typ deine Variable jetzt hat.
Verfasst: 19.02.2005 22:19
von Skiller
Danke erstmal für deine Antwort Lars.
War vielleicht nicht ganz verständlich ausgedrückt. Hier mal das Beispiel dazu. Wir kann ich hier abfragen, ob uVar String o. numerisch ist?
Code: Alles auswählen
Procedure _SayText(x,y,uVar)
StartDrawing(ScreenOutput())
Locate(x,y)
BackColor(0,0,0)
FrontColor(255,255,255)
if TYPE(uVar) = "C" ; <-- so in der Art
DrawText(uVar)
else
DrawText(Str(uVar))
endif
StopDrawing()
EndProcedure
Ein Errorhandle wär vielleicht eine Mög. aber die fängt der Compiler leider
schon vorher ab.
uVar = "Hallo" -> Compilerstop
_SayText(100,100,uVar)
oder
nVar = 10
uVar = Val(nVar) -> CompilerStop
_SayText(100,100,uVar)
vielleicht hast du ja eine optimalere Lösung, um nicht immer wieder die
Standardvor u.- Nachfunktionen für DRAWTEXT() aufzurufen.
Gehört zwar nicht hierher, aber hab auch da im Board keine Antwort gefunden.
Ist das Fenster Child / Parent handling auch in Linux möglich?
In der Hoffnung euch nicht allzusehr zu belasten....
Skiller
Verfasst: 19.02.2005 23:05
von Epyx
Wenn du nur wissen willst ob Nummerisch oder nicht dann würde ich es folgendermaßen machen.
Code: Alles auswählen
Declare.l Nummeric(Var$)
A$="1234567890"
Debug Nummeric(A$)
A$="12A567B890"
Debug Nummeric(A$)
Procedure.l Nummeric(Var$)
Ret=1
For t=1 To Len(Var$)
ascii = Asc(Mid(Var$,t,1))
If ascii<48 Or ascii>57 : Ret=0 : EndIf
Next t
ProcedureReturn Ret
EndProcedure
Verfasst: 20.02.2005 00:36
von bluejoke
Du musst doch beim Programmieren wissen, was deine Variable für ein Typ ist, oder hast du zwei verschiedene Initialisierungen?
In dem Fall würde ich eine zusätzliche Variable nehmen, in der dann steht, welcher Typ verwendet wird.
Verfasst: 20.02.2005 01:01
von Kaeru Gaman
ich würde den typ in der Proc-Deklaration angeben
damit muss eine zahl mit z.b.
übergeben werden....
ist eigentlich so üblich, dass der Var-typ festgeschrieben wird.
ok, andere sprachen kennen den typ 'variant', aber dessen verarbeitung ist auch nicht einfach...
Verfasst: 22.02.2005 22:23
von Skiller
Hallo Freunde,
erstmal entschuldigung, dass ich mich noch nicht für eure Beiträge bedankt habe, aber hatte den Kopf sehr voll.
Nachdem ich jetzt alles nochmal getestet hatte schien mir Kaeru´s Version jedoch am plausibelsten.
DANKE jungs!!