Seite 1 von 1
Pointer klappt nicht
Verfasst: 21.03.2005 17:42
von Franky
Hi
Es will mal wieder net
Ich will mittels Pointer die adresse eines Strings übergeben (ich hoffe, dat is jetzt richtig erklärt)
So sieht die Procedure aus
Code: Alles auswählen
Procedure Instring(*string.BYTE,usepos.l)
If *string=0
MessageRequester("Is ja klar","So kann das net gehen")
EndIf
EndProcedure
Und so wirds jeweils übergeben
Nun, wat soll ich sagen, *string ist immer 0
Verfasst: 21.03.2005 17:49
von DarkDragon
bei mir ist es nie 0
Code: Alles auswählen
Procedure Instring(*str)
If *str=0
MessageRequester("Is ja klar","So kann das net gehen")
EndIf
EndProcedure
txt.s = "Hallo"
Instring(@txt)
[EDIT] achja: antworte im icq mal
Re: Pointer klappt nicht
Verfasst: 21.03.2005 20:17
von PMV
Hm, bei mir gehts O_o
MFG PMV
Verfasst: 26.03.2005 17:26
von Kaeru Gaman
also, mir kommt ja
merkwürdig vor...
...müsste das nicht
heissen?
Verfasst: 26.03.2005 18:10
von MVXA
ne, weil man den String sonst nicht Byte für Byte abarbeiten kann.
Verfasst: 26.03.2005 18:15
von NicTheQuick
@Kaeru: Das hat schon seine Richtigkeit.
Zum Beispiel für schnelle Stringroutinen:
Code: Alles auswählen
Procedure Quersumme_ASCII(*string.BYTE)
Protected Summe.l
While *string\b
Summe + *string\b & $FF
*string + 1
Wend
ProcedureReturn Summe
EndProcedure
Debug Quersumme_ASCII(@"huhu")
; oder was lustiges
Debug Quersumme_ASCII(@"150")
Debug Quersumme_ASCII(@"159")
@Franky: Das scheint eine Unstimmigkeit in PureBasic zu sein. Schau mal hier. Ich hab den selben Fehler. Allerdings auch eine Lösung dafür.
Code: Alles auswählen
Procedure Instring(*string.BYTE, usepos.l)
If *string=0
MessageRequester("Is ja klar","So kann das net gehen")
Else
MessageRequester("Klar","So geht das")
EndIf
EndProcedure
procpos.l
proctext.s
Instring(@proctext, procpos)
proctext = ""
Instring(@proctext, procpos)
PS.: Mozilla Firefox ist echt bescheuert. Ich deinstallier das nochmal. Der kann ja noch net mal Smilies und Code-Tags so setzen wie es sein soll.

Verfasst: 26.03.2005 18:21
von Deeem2031
Is doch klar, "proctext.s" sagt dem Compiler nur das die Variable "proctext" ein String sein soll, aber nicht das der String erstellt werden soll.. wozu denn auch, würde normalerweise nur Speed kosten. Und weil der String dann noch nicht existiert ist der Pointer darauf logischerweise 0.
Verfasst: 26.03.2005 19:45
von Kaeru Gaman
@Deeem
*handvordiestirnklatsch*
da muss man bei dem mini-schnipsel erstmal drauf kommen,
dass er die Var nicht vordefiniert hat...