# Whats Wrong With This Code

## Recommended Posts

I want to make a 17 digit String. The digits can be Numbers or Letters.

I decided to use random heads/tails to decide if it will be a letter or a number.

Then it just needs to connect the new letter to the whole string.

example:

then first throw of the heads/tails = letter. Lets say that letter is 'A'.

So now the string should be "A"

Next roll a tails = Number. Lets Say # is 2.

So now the string should be "A2"

etc.

I tried useing C++ like syntax but it did not work. Anyway any advice would be cool. I use chr 64 to 90 because this is A to Z so it says in the help files.

\$x = 18

While \$x <> 0

\$letter = 0

\$var = String("")

If Random() < 0.5 Then ; Returns a value between 0 and 1.

\$letter = 1

Endif

If \$letter = 1 Then

\$temp = Chr( Random(64, 90 ) + 1)

\$var = ( \$var + String(\$temp) )

Else

\$temp = Int( Random(-1, 9) + 1)

\$var = ( \$var + String(\$temp) )

Endif

MsgBox(0, "var equals", "var: " & \$var) ; just to see why this only returnes a 1 digit number.

\$x = \$x - 1

Wend

Send(\$var)

##### Share on other sites

I don't know about your code, but ezzetabi has a UDF random string generator over in scripts and scraps which should do the job for ya

"I'm not even supposed to be here today!" -Dante (Hicks)

##### Share on other sites

if you want to concatenate then you need to use & not +...

\$var = \$var & String(\$temp)

Live for the present,
Dream of the future,
Learn from the past.

##### Share on other sites

var remains a 1 element string. It changes...but, always 1 digit.

##### Share on other sites

this will reset it every loop back to nothing: \$var = String("")

EDIT:

Heres a working version:

```\$x = 18
\$var = ""
for \$y = \$x to 0 step -1
If Random() < 0.5 Then
\$temp = Chr( Random(64, 90) + 1)
Else
\$temp = Int( Random(-1, 9) + 1)
EndIf
\$var = \$var & String(\$temp)
MsgBox(0, "var equals", "var: " & \$var); just to see why this only returnes a 1 digit number.
next
Send(\$var)```
Edited by JdeB

Live for the present,
Dream of the future,
Learn from the past.

##### Share on other sites

hahahah oh my...yes that would do it. Lol. I ended up just editing that function that one guy showed me and got that working. But yeah that would of fixed the problem. I could of swore i had that outside of hte While ;-0.

here is the new function that does Uppercase letters and Numbers:

Func _RandomText(\$N)

;\$n is the lenght of string.

If \$N < 1 Then Return -1

Local \$COUNTER, \$ALPHA, \$RESULT

For \$COUNTER = 1 To \$N

If Random() < 0.5 Then

\$ALPHA = Chr(Random(Asc("A"), Asc("Z") + 1))

Else

\$ALPHA = Chr(Random(Asc("1"), Asc("9") + 1))

EndIf

\$RESULT = \$RESULT & \$ALPHA

Next

Return \$RESULT

EndFunc ;==>_RandomText

Its just that one guys code. Modified very slightly.

On the bright side i know a little about Functions now.

## Create an account

Register a new account