Statalist The Stata Listserver

[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Trying to do inverse of char(n) without Mata ascii()

From   Mike Lacy <>
Subject   st: Trying to do inverse of char(n) without Mata ascii()
Date   Sat, 10 Jun 2006 11:57:18 -0600

I was trying implement a code fragment to give the number of a given character, i.e., the inverse of char(n) without using the Mata ascii function. (One of my reasons for doing it is that I am annoyed by the idea that this is not simply an ordinary function in Stata.) So, I tried the following:

*Construct a list of all the characters in order
local charorder = ""
forval i = 1/255 {
local c = char(`i')
if `i' ~= 96 { /* avoid the pesky open-quote */
local charorder = `"`charorder'`c'"'
else { /* stick in a stand in */
local charorder = `"`charorder'zzz"'
local charorder = subinstr(`"`charorder'"', "zzz", "`",1)
di " The whole list: " `"`charorder""'
* try finding something
di "Letter a is found at ", strpos(`"`charorder'""', "a")

While there may well be a more elegant way to get the open-quote character into a macro that also contains " and ', what I am most stuck with is the very last line, in which I tried to use strpos to find the position of a
sample character, and the response is "too few quote," which presumably is the interpreter's complaint about `"`charorder'""' in strpos().
Any suggestions here?


Mike Lacy
Fort Collins CO USA
(970) 491-6721 office

* For searches and help try:

© Copyright 1996–2022 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index