Seite 1 von 2
String = Procedure(argument) funktioniert nicht
Verfasst: 02.03.2008 13:13
von TWELVE
Hallo,
wer hat eine Erklärung für folgendes "Phänomen":
--Beispiel 1-----------------------------
string.s = MeineProcedure( string2.s)
string.s bleibt leer
---Beispiel 2------------------------
MeineProcedure(string2.s)
string.s = result.s
string.s hat den korrekten Inhalt
-----------------------------------------------
Procedure.s Meine Procedure(string2.s)
...
result = anderer string
ProcedureReturn result$
-----------------------------------------------
Das Problem ist zutage getreten, als ich die Procedure innerhalb eines Threads aufgerufen habe.Deshalb habe ich geschlußfolgert, das dies bei Aufruf außerhalb eines Threads funktionieren würde.Jetzt hab ich mir meinen Code nochmal angesehen und festgestellt, das ich es außerhalb des Threads auch nicht anders mache.
result.s ist global, deshalb kann ich darauf auch von außerhalb zugreifen.Macht PureBasic einen Unterschied zwischen result.s und result$ ...? Das wäre ja ne mögliche Erklärung..?
Grüße
TWELVE
Re: String = Procedure(argument) funktioniert nicht
Verfasst: 02.03.2008 13:15
von edel
TWELVE hat geschrieben:
Macht PureBasic einen Unterschied zwischen result.s und result$ ...? Das wäre ja ne mögliche Erklärung..?
Jup, sind 2 Variablen
Re: String = Procedure(argument) funktioniert nicht
Verfasst: 02.03.2008 13:20
von AND51
edel hat geschrieben:TWELVE hat geschrieben:
Macht PureBasic einen Unterschied zwischen result.s und result$ ...? Das wäre ja ne mögliche Erklärung..?
Jup, sind 2 Variablen
Lies dir dazu bitte die Seite "Variablen, Typen und Operatoren" in der Hilfe durch, da steht
genau das (und noch viel mehr).
Verfasst: 02.03.2008 14:03
von TWELVE
Jup, sind 2 Variablen
Lies dir dazu bitte die Seite "Variablen, Typen und Operatoren" in der Hilfe durch, da steht genau das (und noch viel mehr).
Schon gut..

Ich verwende eigentlich keine Variablen mit $ am Ende, ich hab mir vor längerem angewöhnt, .s zu nehmen.Das mit dem $ ist eine Altlast aus meinen PureBasic Anfangstagen und da die entsprechenden Routinen funktionierten, ist mir das erst jetzt aufgefallen.Ansonsten hat jede Variable zu jeder Zeit das .typ hintendran, also nicht nur bei der Deklaration, damit ich immer weiß, von welchem Typ sie ist.Macht Sinn, oder..?
Wozu soll das eigentlich gut sein, zwischen $ und .s zu unterscheiden...?
Grüße
TWELVE
Verfasst: 02.03.2008 14:39
von STARGÅTE
$ ist ein eigener "Buchstabe" der zur Variable gehört das .s ist ein Typ.
Genauso wir : #LF = 10 ergibt und #LF$ mit das Zeichen ausgibt
Verfasst: 02.03.2008 16:04
von ZeHa
Naja in ganz alten BASIC-Varianten war das halt so, da war a eine Zahl und a$ ein String. Ich fand's irgendwie cool und benutze es heute noch. In QBasic wurde das noch erweitert, a% war dann glaub ein int usw, aber das war mir dann auch zu umständlich
Aber wie gesagt, das $-Zeichen gefällt mir irgendwie besser als .s, drum benutz ich das in PureBasic auch noch heute
EDIT: Und ich spreche es als "s" aus

a$ war bei mir nie "a-Dollar", sondern immer "ah eß"

und name$ ist bei mir "nameß" und nicht "name-Dollar"

würde mal gern wissen bei wem das genauso ist
Verfasst: 02.03.2008 16:11
von STARGÅTE
ZeHa hat geschrieben:EDIT: Und ich spreche es als "s" aus

a$ war bei mir nie "a-Dollar", sondern immer "ah eß"

und name$ ist bei mir "nameß" und nicht "name-Dollar"

würde mal gern wissen bei wem das genauso ist
Also ich führe keine selbstgespräche beim programmieren ^^ aber wenn ich laut denke dann sage ich nicht "nameß" sonder bei mir kommt sobalt ich das $ sehen das wort String in den Kopf, sodass ich dieses Zeichen auch String nenne. "Text$" würde dann ausgesprpchen "Textstring" heißen manchmal aber auch Bei "Wert$" wirds zu "Stringwert"
Verfasst: 02.03.2008 18:36
von #NULL
ich benutze $ bei kleinen tools von ein paar zeilen (explicit disabled). aber in normalen projekten immer .s.
i.s ja wur$t

Verfasst: 02.03.2008 18:46
von AND51
STARGÅTE hat geschrieben:ZeHa hat geschrieben:EDIT: Und ich spreche es als "s" aus

a$ war bei mir nie "a-Dollar", sondern immer "ah eß"

und name$ ist bei mir "nameß" und nicht "name-Dollar"

würde mal gern wissen bei wem das genauso ist
Also ich führe keine selbstgespräche beim programmieren
Ich manchmal schon.
Und ich spreche immer alles so aus, wie es da steht...
name.s => name eß
anzahl.l => anzahl el
text$ => text dollar (in Perl steht das $ ja immer vorn, dann nenne ich es "dollar text")
Strukturierte Variablen lese ich immer in der Form Variablenname+Feldname:
Code: Alles auswählen
info.POINT ; gelesen: info point
info\x=5 ; gelesen: info x gleich fünf
info\y+1 ; gelesen: info y plus 1
Merhfach strukturiete Variablen hatte ich noch nie, kann mir aber denken, sie nach dem gleichen Muster zu "lesen"...
Übrigens benutze ich meistens .s anstelle von $, weil ich .s nur bei der Definition einer Variablen brauche; das $ hingegen ist permanenter Bestandteil des Variablennamens und würde mir jedes Mal einen zusätzlichen Tastendruck abringen (ohhh, ich armer....)
Ergebnis: Beispiel 1 spart schon nach zweimaligem Aufruf von 'a' schon 1 Zeichen.
Vorteile:
-Verkürzung des Codes => Übersichtlichkeit & Dateigröße
-Verlängerung der Lebensdauer der Tastatur, insbesondere der Taste '4'
- Weniger Tipparbeit => Coden ist nicht mehr sooo anstrengend
-Zeiteinsparung beim Aufrufen/Tippen der Variable 'a'

Verfasst: 02.03.2008 18:53
von PMV
AND51 hat geschrieben:Und ich spreche immer alles so aus, wie es da steht...
name.s => name eß
anzahl.l => anzahl el
text$ => text dollar (in Perl steht das $ ja immer vorn, dann nenne ich es "dollar text")
Strukturierte Variablen lese ich immer in der Form Variablenname+Feldname:
Code: Alles auswählen
info.POINT ; gelesen: info point
info\x=5 ; gelesen: info x gleich fünf
info\y+1 ; gelesen: info y plus 1
Merhfach strukturiete Variablen hatte ich noch nie, kann mir aber denken, sie nach dem gleichen Muster zu "lesen"...

Ich auch ... ich lese aber den Punkt bei Variablendekleration mit ... nur
den Backslash ("") lese ich nicht mit. $-Zeichen wird natürlich auch mit
gelesen.
$ hab ich auch zu anfang viel verwendet ... kam ja frisch von QBasic

Aber inzwischen immer weniger, bzw. vorallem dann, wenn ich für etwas
eine Zahlenvariable und eine Stringvariable brauche, dann nutze ich
und dafür ist das Feature "$" in PB sogar sehr nützlich.
... ansonnsten hab ichs mir aber eigentlich inzwischen abgewöhnt
MFG PMV