ProcedureReturn

Anfängerfragen zum Programmieren mit PureBasic.
svencokg
Beiträge: 2
Registriert: 31.08.2014 17:23

ProcedureReturn

Beitrag von svencokg »

erst einmal hallo , sind meine ersten schritte - gleich als entschuldigung vorraus :-)

habe ein kleines problem mit ProcedureReturn - und zwar steht in der hilfe das man auch einen string zurückgeben kann
das funktioniert aber nicht :-(

Code: Alles auswählen

Procedure norm(term.s,genauigkeit.i)
  komma_term=FindString(term,".")
  
  If komma_term<>0 
    links_term.s=Left(term,komma_term-1)  
    rechts_term.s=Right(term,Len(term)-komma_term)
  Else
    links_term.s=term
    rechts_term.s=""  
  EndIf
  
  rechts_term=LSet(rechts_term,genauigkeit,"0")
  links_term=RSet(links_term,Len(links_term),"0")
  
  
  ProcedureReturn links_term+"."+rechts_term
  
EndProcedure  
als fehler sagt mir der compiler - procedurereturn erwartet einen numerischen wert - ist das so gewollt und wenn ja , wie bekomme ich einen string zurück ?

__________________________________________________
Code-Tags hinzugefügt
31.08.2014
RSBasic
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ProcedureReturn

Beitrag von ts-soft »

Procedure.s oder Procedure$
Mit Codetags:

Code: Alles auswählen

Procedure.s norm(term.s, genauigkeit.i)
  komma_term = FindString(term, ".")

  If komma_term <> 0
   links_term.s = Left(term, komma_term -1)
   rechts_term.s = Right(term, Len(term) - komma_term)
  Else
    links_term.s  = term
    rechts_term.s = ""
  EndIf

  rechts_term = LSet(rechts_term, genauigkeit,  "0")
  links_term  = RSet(links_term,  Len(links_term),  "0")


  ProcedureReturn links_term + "." + rechts_term

EndProcedure
Ausserdem würde ich Dir das EnableExplicit ans Herz legen :)

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
CodeCommander
Beiträge: 213
Registriert: 02.03.2014 16:06

Beitrag von CodeCommander »

Du musst deiner Prozedur auch den Typ für Return angeben. Wenn es sich um String handelt der zurückgegeben werden soll dann musst du Procedure.s schreiben:

Code: Alles auswählen

Procedure.s norm(term.s,genauigkeit.i)
  komma_term=FindString(term,".")
 
  If komma_term<>0
    links_term.s=Left(term,komma_term-1)
    rechts_term.s=Right(term,Len(term)-komma_term)
  Else
    links_term.s=term
    rechts_term.s=""
  EndIf
 
  rechts_term=LSet(rechts_term,genauigkeit,"0")
  links_term=RSet(links_term,Len(links_term),"0")
 
 
  ProcedureReturn links_term+"."+rechts_term
 
EndProcedure
Zuletzt geändert von CodeCommander am 18.01.2015 14:34, insgesamt 1-mal geändert.
~ DELETE ~
svencokg
Beiträge: 2
Registriert: 31.08.2014 17:23

Re: ProcedureReturn

Beitrag von svencokg »

Dankeschön ! :D
Antworten