Idiomatically determine all the characters that can be used for symbols: Difference between revisions
Content added Content deleted
Walterpachl (talk | contribs) m (→{{header|ooRexx}}: final (?) fix) |
Catskill549 (talk | contribs) |
||
Line 15: | Line 15: | ||
* [[Idiomatically_determine_all_the_lowercase_and_uppercase_letters|Idiomatically determine all the lowercase and uppercase letters]]. |
* [[Idiomatically_determine_all_the_lowercase_and_uppercase_letters|Idiomatically determine all the lowercase and uppercase letters]]. |
||
=={{header|AWK}}== |
|||
<lang AWK> |
|||
# syntax: GAWK -f IDIOMATICALLY_DETERMINE_ALL_THE_CHARACTERS_THAT_CAN_BE_USED_FOR_SYMBOLS.AWK |
|||
BEGIN { |
|||
fn = "TEMP.AWK" |
|||
cmd = sprintf("GAWK -f %s 2>NUL",fn) |
|||
for (i=0; i<=255; i++) { |
|||
c = sprintf("%c",i) |
|||
if (c ~ /\x09|\x0D|\x0A|\x20/) { ng++; continue } # tab,CR,LF,space |
|||
(run(c) == 0) ? (ok1 = ok1 c) : (ng1 = ng1 c) # 1st character |
|||
(run("_" c) == 0) ? (ok2 = ok2 c) : (ng2 = ng2 c) # 2nd..nth character |
|||
} |
|||
printf("1st character: %d NG, %d OK %s\n",length(ng1)+ng,length(ok1),ok1) |
|||
printf("2nd..nth char: %d NG, %d OK %s\n",length(ng2)+ng,length(ok2),ok2) |
|||
exit(0) |
|||
} |
|||
function run(c, rc) { |
|||
printf("BEGIN{%s+=0}\n",c) >fn |
|||
close(fn) |
|||
rc = system(cmd) |
|||
return(rc) |
|||
} |
|||
</lang> |
|||
<p>output:</p> |
|||
<pre> |
|||
1st character: 203 NG, 53 OK ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz |
|||
2nd..nth char: 193 NG, 63 OK 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz |
|||
</pre> |
|||
=={{header|J}}== |
=={{header|J}}== |
||