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

VBはまだ始めたばかりで本当に初歩的なことかもしれませんが分かる方がおられたら是非教えて下さい。

text1.textから取り込んだ文字列を”一文字ずつ”(Dim a(100) as stringで宣言した)配列に格納したいのですがどうしたらいいのでしょうか??
<例>text1.textに"abc"と入力しcommandbuttonを押すとa(0)に"a"がa(1)に"b"がa(2)に"c"が格納されるといったかんじです。

ちなみに今私がしたいのはtext1.textに、ある文字列を入れその文字列を文字コードに変換しそれを一文字分ずつ+1してまたそのコードを文字に直しtext2.textに出力するというものです(ようは簡単な暗号化ですね)。

私はAscとChrコマンドを利用して1文字ずつコードをずらしていこうと思っているのですが、他に良い方法などあるのでしょうか??

本当に初心者でどのようにしらたよいのか分かりません…。
どなたか分かりやすく教えていただけませんでしょうか??
お願いします。

A 回答 (2件)

for i = 1 to len(text1.text)


a(i-1)=mid(text1.text),i,1)
if c="\" then cnt=cnt+1
next i

mid関数を使って1文字ずつとりだしてます。
1つずつa(i)にはいっていくはずです。
初心者ということでしたのでlen関数も説明しておきます。
len関数は文字数の数を返します。全角半角は問いません。

でアスキーコードを1ずらすには
a(i)=chr(asc(a(i))+1)

こんなんでどうでしょうか?
あとは連結させるだけです。
    • good
    • 0
この回答へのお礼

初心者の私でも十分に理解できるほど分かりやすく教えていただきありがとうございました!

さっそく試してみたいと思います!

お礼日時:2002/06/07 22:28

お疲れ様です。



下記のような例はどうでしょうか?

バイト型の配列は文字と同じように使うことが出来ます。
バイト型の配列に文字のコードを入れてコードを+1しています。
そして最後に文字型に入れています。

復号化はその逆に-1しているだけです。

例)

Private Sub Command1_Click()

  Dim str As String
  Dim arr() As Byte
  Dim i As Long

  str = "abc"

  '// 暗号化
  '// バイト型の配列に文字コードを代入
  arr = StrConv(str, vbFromUnicode)

  For i = LBound(arr) To UBound(arr)
    
    '// コードを+1
    arr(i) = arr(i) + 1

  Next i

  '// 文字型に戻す
  str = StrConv(arr, vbUnicode)

  Debug.Print str

  '// 復号化
  '// バイト型の配列に文字コードを代入
  arr = StrConv(str, vbFromUnicode)

  For i = LBound(arr) To UBound(arr)

    '// コードを-1
    arr(i) = arr(i) - 1

  Next i

  '// 文字型に戻す
  str = StrConv(arr, vbUnicode)

  Debug.Print str

End Sub

間違っていたらごめんなさい。
    • good
    • 0
この回答へのお礼

間違っていたらごめんなさいなんてとんでもないっ!
とても丁寧なプログラムを教えていただきありがとうございました!

さっそく試してみたいと思います。

お礼日時:2002/06/07 22:32

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