getkey()

Blitz3D Forums/Blitz3D Beginners Area/getkey()

GC-Martijn(Posted 2005) [#1]
H!

I'm busy with my own Input$()

but now I want that people can't do this: bla bla
(not multiply spaces between words)

So I have this code below but now its not possible to make 1 space between words.

Repeat
c=GetKey()
If c<>0 And c<>13 And c<>27 Then ;no 0,enter,esc
		
If c<>32 And h<>32 Then ;no multiply spaces
	w$ = w$+""+Chr$(c)
	Write Chr$(c)
	EndIf		
EndIf

h=c
c=0
Until KeyHit(28) Or KeyHit(1)



GC-Martijn(Posted 2005) [#2]
mmm with trying some other things its oke now.
srry, can't delete/close this topic.

	Repeat
		c=GetKey()
		If c<>0 And c<>13 And c<>27 Then ;geen 0,enter,esc
			DebugLog "c"+c+" h"+h
			If c=32 And h=32 Then
				c=32	
			Else
				w$ = w$+""+Chr$(c)
				Write Chr$(c)
			EndIf
			
		h=c
		EndIf
	Until KeyHit(28) Or KeyHit(1)



BlackJumper(Posted 2005) [#3]
Not pretty, but how about this...

Repeat
current=GetKey()
If current<>0 And current<>9 And current<>13 And current<>27 Then ;trap TAB,enter,esc
		
	If current<>32 Then 			;get any non-space chars
		w$ = w$+""+Chr$(current)
		Write Chr$(current)
		previous = current			; reset 'previous' to a valid value
	Else
		If previous <> 32 Then		; or else print/add a space
			w$ = w$+" "
			Write " "
			previous = 32			; and note that you just used one {so trap future spaces}
		EndIf
	EndIf		
EndIf
		
Until MouseHit(1)					; use mouse to escape program
End



GC-Martijn(Posted 2005) [#4]
That's nice too, maybe I use that methode.
Thanks for the TAB key :)


_PJ_(Posted 2005) [#5]
You could also perhaps use:

The 'Replace' function on the resultant string. Include this each loop while the input is being recorded.



http://www.blitzbasic.com/b3ddocs/command.php?name=Replace&ref=2d_cat