文字列のスペースから次のスペースまでを取得するには?

解決


たかっち  2004-03-05 04:11:48  No: 82411  IP: [192.*.*.*]

初投稿です。よろしくお願いいたします。
テキストボックスの文字列でスペースから次のスペースまでを取得したいのですが、
どのようにしたら良いでしょうか?
例えば、
『12AB  345CDE  67FG』
『123ABC  45DE  678FGH』
などという文字列があった場合、
『345CDE』と『45DE』のみを取得したいのです。
教えてください!よろしくお願いいたします。

編集    削除
Syake  2004-03-05 04:29:29  No: 82412  IP: [192.*.*.*]

私なら
  まず文字の数を取得します。
  次にFor文で文字の数だけ繰り返しながら一文字づつみます。
    その中でif文を使って「スペース」かどうか判断しながら
      最初のスペースまでの文字を配列変数に格納
      「スペース」出くわしたら配列変数の添え字を足して
      次の文字列を格納
  ・・・て繰り返します。
いかがですか?  原始的?

編集    削除
マフユ  2004-03-05 04:31:15  No: 82413  IP: [192.*.*.*]

VB6ならSplitで分割したら?
例がが半角として

Dim dat() As String 

tmp= "12AB 345CDE 67FG"
dat = Split(tmp," ")     '半角の空白、全角の時は全角の空白

Debug.Print dat(0)   ' 12AB
Debug.Print dat(1)   ' 345CDE
Debug.Print dat(2)   ' 67FG


dat(1) を利用すれば良いでしょう。

編集    削除
Syake  2004-03-05 04:37:05  No: 82414  IP: [192.*.*.*]

マフユさん
そんな便利なものが有ったのですか。
いや、勉強になりました。

てなとこで、先程の内容は忘れてください

編集    削除
マフユ  2004-03-05 05:10:56  No: 82415  IP: [192.*.*.*]

どうして忘れて下さいなのですか?

Splitや他の方のフォローで解決したなら
マナーとしてのお礼の言葉と
(別にお礼を言われたい訳では無いがマナーでしょ?)
この掲示板での作法の「解決」処理をして下さいよ!

編集    削除
IMA  2004-03-05 05:57:43  No: 82416  IP: [192.*.*.*]

私の場合はInstr関数である文字から別のある文字まで抽出する関数を
作ったことがあります。

ところでマフユさん。
Syakeさんは最初の質問者ではなくて、解答してくださった方です。
その方がマフユさんのSplit関数を使う方が簡単なので、質問者のたかっちさんに
自分(Syakeさん)のLoop処理の提案は「忘れてください」と書かれているはずです。

「解決」処理は質問者の たかっちさんが理解できたらチェックすることだと
思いますよ。

編集    削除
マフユ  2004-03-05 06:45:47  No: 82417  IP: [192.*.*.*]

失礼しました。
読み方が甘かったです。
ご指摘ありがとうございました。

編集    削除
たかっち  2004-03-05 18:45:52  No: 82418  IP: [192.*.*.*]

Syakeさん、マフユさん、IMAさん、自分が早いうちに解決書き込みしないことで
ご迷惑をお掛けしまして申し訳ありませんでした。

マフユさんのSplit関数で実施したところ見事にうまく行きました!
ありがとうございました!

編集    削除