- ベストアンサー
「一文字ずつ抜き出す」どうやれば?
こんばんは、いつもお世話になっています ちょっとした課題なのですがつまづいてしまいました htmlとaspを作り、 htmlにはフォームで 名前1 <INPUT TYPE=text NAME=myname Value="" SIZE=20> 名前2 <INPUT TYPE=text NAME=yourname Value="" SIZE=20> 二つの名前を記入させるようになっています。 この二つに入れられた文字を、くっつけて、その後一文字ずつに分解して、その一文字ずつを数字に置き換え、その後でいろいろと計算したいのです。が、一文字ずつ分解の時点でどうやっていいかわからなくなってしまいました。 とりあえずaspに NAME1=Request.Form("myname") NAME2=Request.Form("yourname") NAME=NAME1 & NAME2 とおき、NAMEの文字数を求めるために Dim i,p,Suji p=Len(NAME) としたのですが(ここまであっているでしょうか…。) で、 For i=1 to p Suji=Mid(NAME,i,1) Next とすれば、1文字目から最後の文字まで抜き出すことが できると思うんですけど、 このままだと、1文字目から2文字目に行ったときに Sujiの上に上書きされて前の文字の情報が消えてしまうと思うんです。 NAMEから抜き出した文字の情報を、後で別の文字に置き換えたいので、上書きされないような方法ってないものかと思い、 Sujiをループするごとに違う変数を出すようにすればいいのかと、くるしまぎれに For i=1 to p Suji(i)=Mid(NAME,i,1) Next とかやってみたのですが型が一致しませんとのことでした。 この問題をうまく解決する方法はないのでしょうか。 勉強不足なもので言いたいことをうまく伝えられている自信がまったくないのですが、わかりにくかったら聞いてください。申し訳ないです。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
何か姓名判断か名前による相性判断をなさりたいみたいですね。 「1文字づつ取り出し数字化」ため、文字列を分解して配列に入れようとしているのは無駄のような気がします。 数字化するプロシージャを「fnc数字化」と仮定して、 For i=1 to p Suji(i)=fnc数字化(Mid(NAME,i,1)) Next あるいは Suji = "" For i=1 to p Suji=Suji & fnc数字化(Mid(NAME,i,1)) Next ただし、fnc数字化の戻り値と変数Sujiは文字型です。
その他の回答 (2)
- khazad-lefty
- ベストアンサー率44% (296/668)
VB Dim で検索したら…多分ヒットしすぎて難しいかも。 大雑把に言うと、Dimは「変数宣言」をするものです。 とくに配列を使用する場合は「配列だよ」という宣言を事前に行う必要があります。 そうじゃなくても宣言はするべきではあるのですが…。
お礼
ご親切にありがとうございます。 ほかの言語とちがって、宣言しなくてもうまくいく場合がありますよね?配列ですか…うぐぐg 勉強してまいります。ほんとにありがとうございます。
- ape5
- ベストアンサー率57% (85/148)
うろ覚えのVBScriptですが・・・ =================================== Dim i,p p=Len(NAME) Dim Suji(p) For i = 1 to p Suji(i)=Mid(NAME,i,1) Next
お礼
さっそくの回答ありがとうございます。やってみます。 Dimっていったいどういうことなんでしょうか…
補足
上のやりかたでうまくいきました もっとよく勉強してみます、どうもありがとうございました!
お礼
そうなんです。自由課題なのでちょっと思いついたものをやろうと思ったのですが難しすぎました…でもあきらめきれません。 なるほど!プロシージャはほとんど不勉強なので、ちょっと復習してみます。なんとかうまくいけそうです。どうもありがとうございました。