Could someone explain why the following statements give different results:
put format("%40c",space) into t40Spaces
put format("%40c"," ") into t40Spaces
put format("%40c",32) into t40Spaces
put format("%40c",charToNum(" ")) into t40Spaces
The last two statements do what I expect; puts a string with 40 spaces into the variable t40Spaces. The first two statements create a 40 space string ending with the character "8".
Also, is there another simple method using revolution to create strings of repeating characters other than using the format statement.
I believe there are other languages such as Python that overload operators such as "*" to do this making 40*' ' a string with 40 space characters. I do not see an equivalent in Revolution.
Thanks,
How to create repeating character strings in Revolution
Moderators: Klaus, FourthWorld, heatherlaine, kevinmiller
These are not really repeat characters using the format statement.
From the dictionary:
Character:
%[charLength]c
The corresponding value is treated as an ASCII value and translated to the corresponding character. If a charLength is specified, one fewer leading spaces are added to make it charLength characters long. For example, the incantation %2c transforms 65 to " A" (65 is the ASCII value of the character "A").
eg. put format("%10c",65) creates a 10 character string made up up 9 leading spaces followed by a capital A.
Notice the value after the comma is supposed to be an ascii value.
Thats why your last 2 statements work properly.
The first two don't follow the rules, so they result in unexpected results.
To create repeated strings just create a simple repeat loop.
eg.
put fGetRepeatedString("ABC",6) --"ABCABCABCABCABCABC'
function fGetRepeatedString pString,pRepeatNum
local tTotalString
repeat pRepeatNum times
put pString after tTotalString
end repeat
return tTotalString
end fGetRepeatedString
From the dictionary:
Character:
%[charLength]c
The corresponding value is treated as an ASCII value and translated to the corresponding character. If a charLength is specified, one fewer leading spaces are added to make it charLength characters long. For example, the incantation %2c transforms 65 to " A" (65 is the ASCII value of the character "A").
eg. put format("%10c",65) creates a 10 character string made up up 9 leading spaces followed by a capital A.
Notice the value after the comma is supposed to be an ascii value.
Thats why your last 2 statements work properly.
The first two don't follow the rules, so they result in unexpected results.
To create repeated strings just create a simple repeat loop.
eg.
put fGetRepeatedString("ABC",6) --"ABCABCABCABCABCABC'
function fGetRepeatedString pString,pRepeatNum
local tTotalString
repeat pRepeatNum times
put pString after tTotalString
end repeat
return tTotalString
end fGetRepeatedString