• ベストアンサー

「一文字ずつ抜き出す」どうやれば?

こんばんは、いつもお世話になっています ちょっとした課題なのですがつまづいてしまいました 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 とかやってみたのですが型が一致しませんとのことでした。 この問題をうまく解決する方法はないのでしょうか。 勉強不足なもので言いたいことをうまく伝えられている自信がまったくないのですが、わかりにくかったら聞いてください。申し訳ないです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#79209
noname#79209
回答No.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は文字型です。

analogy
質問者

お礼

そうなんです。自由課題なのでちょっと思いついたものをやろうと思ったのですが難しすぎました…でもあきらめきれません。 なるほど!プロシージャはほとんど不勉強なので、ちょっと復習してみます。なんとかうまくいけそうです。どうもありがとうございました。

その他の回答 (2)

回答No.2

VB Dim で検索したら…多分ヒットしすぎて難しいかも。 大雑把に言うと、Dimは「変数宣言」をするものです。 とくに配列を使用する場合は「配列だよ」という宣言を事前に行う必要があります。 そうじゃなくても宣言はするべきではあるのですが…。

analogy
質問者

お礼

ご親切にありがとうございます。 ほかの言語とちがって、宣言しなくてもうまくいく場合がありますよね?配列ですか…うぐぐg 勉強してまいります。ほんとにありがとうございます。

  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

うろ覚えのVBScriptですが・・・ =================================== Dim i,p p=Len(NAME) Dim Suji(p) For i = 1 to p Suji(i)=Mid(NAME,i,1) Next

analogy
質問者

お礼

さっそくの回答ありがとうございます。やってみます。 Dimっていったいどういうことなんでしょうか…

analogy
質問者

補足

上のやりかたでうまくいきました もっとよく勉強してみます、どうもありがとうございました!

関連するQ&A