[Seaside] Generating a random string

Louis LaBrunda Lou at Keystone-Software.com
Tue Nov 29 15:11:35 UTC 2011

Hi Aeren,

You have two problems with your code.  The first looks like a typo.  The
"[" after put: should be a "(" and its matching "]" should be a ")".  As
is, the code is trying to store a block where a character should go.

The second problem is with your use of Random.  There is no #between:and:
class or instance method of Random.  You need to create a new instance of
Random, something like:

	random := Random seed: 100000.

You should look up what a good value for the seed should be, I just used
100000 as an example.

Then you should use:

(random nextInt: (alphabet size))

to get your next random character.

I hope this helps and good luck.


>I'm trying to generate a random string, and i've created a method to do so
>based on a few things I found on internet. However, when I try to generate
>the string, I receive the error : "Improper store into indexable object".
>The error comes when I try to insert a new random character into my string.
>here is my code.
>*randomString:* aSize
>	| alphabet word |
>	alphabet := '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
>	word := String new: aSize.
>	1 to: aSize do: [ :position |
>		word at: position put: [ alphabet at: ( Random between: 1 and: (alphabet
>size) ) ] ].
>	^word
>Any help?
Louis LaBrunda
Keystone Software Corp.
SkypeMe callto://PhotonDemon
mailto:Lou at Keystone-Software.com http://www.Keystone-Software.com

More information about the seaside mailing list