Umkehrung einer Procedur

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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
Bild
Win11 Pro 64-Bit, PB_6.11b1
Skiller
Beiträge: 151
Registriert: 04.02.2005 22:26

Beitrag 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
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Skiller
Beiträge: 151
Registriert: 04.02.2005 22:26

Beitrag 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
Benutzeravatar
Epyx
Beiträge: 247
Registriert: 29.08.2004 01:40
Computerausstattung: AMD64 X2 DualCore 6000+ , 3GB Ram , WinXP sp3
2x Ati Radeon HD4800 ~ CrossFireX
Kontaktdaten:

Beitrag 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
If you can't make it good, at least make it look good.
Bill Gates
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich würde den typ in der Proc-Deklaration angeben

Code: Alles auswählen

Procedure _SayText(x.l,y.l,uVar.s)
damit muss eine zahl mit z.b.

Code: Alles auswählen

_SayText(50,50,Str(Var))
ü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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Skiller
Beiträge: 151
Registriert: 04.02.2005 22:26

Beitrag 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!!
Antworten