Anfängerfragen zum Programmieren mit PureBasic.
kajott
Beiträge: 35 Registriert: 21.11.2005 02:00
Beitrag
von kajott » 27.11.2005 18:24
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
aufgerufen.
Der Compiler bricht mit der Fehlermeldung:
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]
DarkDragon
Beiträge: 6291 Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:
Beitrag
von DarkDragon » 27.11.2005 18:27
Wer Englisch kann ist im Vorteil:
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
kajott
Beiträge: 35 Registriert: 21.11.2005 02:00
Beitrag
von kajott » 27.11.2005 18:37
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.
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
Beitrag
von ts-soft » 27.11.2005 18:41
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
Zuletzt geändert von
ts-soft am 27.11.2005 18:42, insgesamt 1-mal geändert.
DarkDragon
Beiträge: 6291 Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:
Beitrag
von DarkDragon » 27.11.2005 18:41
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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
kajott
Beiträge: 35 Registriert: 21.11.2005 02:00
Beitrag
von kajott » 27.11.2005 18:49
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
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
Beitrag
von ts-soft » 27.11.2005 18:54
Das Declare ist verkehrt in der ersten Zeile, mach mal Declare.s draus
kajott
Beiträge: 35 Registriert: 21.11.2005 02:00
Beitrag
von kajott » 27.11.2005 18:54
Ohgott!
Gerade gesehen, das ich declare mit ".s" angeben muss! Hat sich gerade erledigt!
Trotzdem danke und sorry nochmal!