My main reason for only taking one letter at a time was that I didn't want all the functionality of the keyboard. If you use Entry$() as it is it also records tabs, enter and a whole lot of other symbols that I didnt want in there. The problem with just using $entry and filtering as it is by the time you make your variable= Entry$() again you have to filter the whole string again. You could always take out what you didn't want after the user presses enter but the user probably won't know whats been taken out and whats not.
Quote: "You should have If Entry$() <> "" or i]If Len( Entry$() )."
Thats a better way of doing it ill update it after this post.
Quote: "Furthermore your function edits the hard coded UserInput string"
Its only designed to get user Input not handle multiple input fields. You would still use the function to do this though eg.
If Cursor=Field1 then Field1data=UserInput. Its not that hard to use it for multiple input fields.
Quote: "Lastly, your example shows entering your name however unless you expect people from the Victorian era to play this they likely won't have numbers in there names. This is fine however in my input routines I often require underscores, commas and what not. It would be best if your function had parameters to specify which type of char you wanted to filter out."
Thats true that sometimes you need underscores, fullstops etc. I only really wrote what I needed from the function but down the track I can see me needing input other than letters and numbers. It wont be too hard to allow it to accept the symbols that I need just allow the ASC() to accept whatever number the String of the symbol is. I think its a good idea having another parameter setting what type of data you want from the user although it might make the function a bit longer.
I have to agree with you that the backspace in the input function is rubbish. Ive been trying to think of another way to go about it. Any ideas are welcome.
Better to be dead, than to live your life afraid.