Seite 1 von 1

String zurückgeben

Verfasst: 27.11.2005 18:24
von kajott
Hi,

folgender Code soll mir einen String aus einer Prozedur in mein Hauptprogramm zurückgeben:

Code: Alles auswählen

Procedure.s satz_bilden()
   
    string1$="test0 "

    string1$=string1$+"test"+"  test2"
  
  
  ProcedureReturn string1$
EndProcedure
Die Prozedur wird im Hauptprogramm mit

Code: Alles auswählen

satz1=satz_bilden()
aufgerufen.

Der Compiler bricht mit der Fehlermeldung:

Code: Alles auswählen

Trying to write a numeric value into string variable
ab.
Die Prozedure ist im Hauptprogramm am Anfang mit "Declare" deklariert.

Warum kann ich den String nicht zurückgeben?

Für Antworten im voraus herzlichen Dank![/code]

Re: String zurückgeben

Verfasst: 27.11.2005 18:27
von DarkDragon
kajott hat geschrieben:

Code: Alles auswählen

satz1=satz_bilden()
Wer Englisch kann ist im Vorteil:

Code: Alles auswählen

satz1.s = satz_bilden()

Verfasst: 27.11.2005 18:37
von kajott
Vergessen zu erwähnen

"satz1.s" wird am Anfang schon als "satz1.s" schon deklariert.

Und die Compilermeldung sagt, das ich einen numerischen Wert in einen String schreiben will!

Ich bekomme also keinen String, trotz "Procedure.s satz_bilden()", zurückgeliefert.

Verfasst: 27.11.2005 18:41
von ts-soft
Deiner Beschreibung nach, sieht Dein Code in etwas so aus:

Code: Alles auswählen

DefType.s satz1

Procedure.s satz_bilden()
  string1$="test0 "
  string1$=string1$+"test"+"  test2"
  ProcedureReturn string1$
EndProcedure

satz1=satz_bilden()
Debug satz1
Funktioniert einwandfrei
PBDebugger hat geschrieben:test0 test test2

Verfasst: 27.11.2005 18:41
von DarkDragon
kajott hat geschrieben:Vergessen zu erwähnen

"satz1.s" wird am Anfang schon als "satz1.s" schon deklariert.

Und die Compilermeldung sagt, das ich einen numerischen Wert in einen String schreiben will!

Ich bekomme also keinen String, trotz "Procedure.s satz_bilden()", zurückgeliefert.

Code: Alles auswählen

Procedure.s satz_bilden()
   
    string1$="test0 "

    string1$=string1$+"test"+"  test2"
 
 
  ProcedureReturn string1$
EndProcedure

satz1.s = ""
satz1=satz_bilden()

Debug satz1
funktioniert doch.

Verfasst: 27.11.2005 18:49
von kajott

Code: Alles auswählen

Declare satz_bilden()


DefType.s satz1

satz1=satz_bilden()
Debug satz1
End


Procedure.s satz_bilden()
  
  string1$=" testting"
  
  string1$=string1$+"test"+"  test2"
  
  
  ProcedureReturn string1$
EndProcedure


läuft bei mir nicht!

Compilermeldung: "Trying to write a numeric value into string variable"

Erstellt mit PB 3.94

Verfasst: 27.11.2005 18:54
von ts-soft
Das Declare ist verkehrt in der ersten Zeile, mach mal Declare.s draus :wink:

Verfasst: 27.11.2005 18:54
von kajott
Ohgott!

Gerade gesehen, das ich declare mit ".s" angeben muss! Hat sich gerade erledigt! :-) Trotzdem danke und sorry nochmal!