dポイントプレゼントキャンペーン実施中!

こんばんは、いつもお世話になっています
ちょっとした課題なのですがつまづいてしまいました

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
とかやってみたのですが型が一致しませんとのことでした。

この問題をうまく解決する方法はないのでしょうか。

勉強不足なもので言いたいことをうまく伝えられている自信がまったくないのですが、わかりにくかったら聞いてください。申し訳ないです。よろしくお願いします。

A 回答 (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は文字型です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/02/15 13:54

VB Dim で検索したら…多分ヒットしすぎて難しいかも。


大雑把に言うと、Dimは「変数宣言」をするものです。
とくに配列を使用する場合は「配列だよ」という宣言を事前に行う必要があります。
そうじゃなくても宣言はするべきではあるのですが…。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/02/15 13:42

うろ覚えのVBScriptですが・・・


===================================
Dim i,p
p=Len(NAME)
Dim Suji(p)
For i = 1 to p
Suji(i)=Mid(NAME,i,1)
Next

この回答への補足

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

補足日時:2007/02/15 03:19
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/02/15 02:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!