HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0311
イナウサ数字から文字へ変換6解決


イナウサ

リンク

2017/3/11(Sat) 22:06:38|NO.78484

変数aに1〜26の数字が入るのですが、その数字をa=1だったら"a"を変数aに代入。a=5だったら"e"を
変数aに代入。といったように26の数字を26のアルファベットに効率よく置き換えたいのです。
------------------------------------
if a=1:a="a"
if a=2:a="b"
とすれば出来るのは知っていますが、効率良くする方法はありませんか?



この記事に返信する


掘木

リンク

2017/3/11(Sat) 23:12:09|NO.78491

strfの%cとか、pokeとかはどうでしょ。



MillkeySoftware

リンク

2017/3/12(Sun) 03:53:07|NO.78492

モジュール作ってみたけど、こんな感じかの?

#module NumAlpha #defcfunc NumToAlpha int p1 PutData = "" poke PutData,0,'`' + p1 return PutData #defcfunc AlphaToNum str p1 PutData = p1 return Peek(PutData,0) - '`' #global a = 3 a = NumToAlpha(a) mes ""+a a = AlphaToNum(a) mes ""+a



kanamaru

リンク

2017/3/12(Sun) 09:54:49|NO.78495

やっぱり文字コードを使う方法が一般的ですか?
最初この質問を見た時、1番最初に思い浮かんだのが、
c="abcdefghijklmnopqrstuvwxyz"
として、引数に与えられた数文字目を抜き取る方法です。
strmid使えば出来ますし。



法貴優雅

リンク

2017/3/12(Sun) 10:35:21|NO.78496

色々やり方はあると思うけどstrfだと
こんな感じかな?

#define ctype n2a(%1) strf("%%c", %1 + '`') a = 1 a = n2a(a) mes a a = 26 a = n2a(a) mes a



法貴優雅

リンク

2017/3/12(Sun) 19:18:49|NO.78500

strfの別パターン。
最初に配列を生成しておいて取得する。


repeat 27 c(cnt) = strf("%c", cnt + '`') loop a = 1 mes c(a) a = 26 mes c(a)



イナウサ

リンク

2017/3/12(Sun) 22:46:01|NO.78508

勉強になりました。ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.