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

お世話になります。
VB6で、データ処理を行いたいと思っています。データを読み込んで、列ごとに配列へ格納することを考えています。
しかし、データによって列の数が異なっており、行き詰ってしまいました。

最初は3列のデータだったので、単に
Input #(ファイル番号), A(i), B(i), C(i)
としたのですが、後になって6列やら、8列のデータが出てきて、通用しなくなりました。

そこで、LineInputで1行ごとに読み込み、Splitを使って値を列ごとに配列へ格納しようと考えました。
しかし、データを見ると値を区切っている空白は複数(3~8程度)で、
うまくSplitできませんでした。

以前にも、VB.NETの場合での似たような質問がされていましたが、VB6ではどのようにしたらよいのでしょうか。
当方初心者なのでお恥ずかしい質問ですが、よろしくお願いします。

A 回答 (1件)

複数スペースでも配列にセットする関数を作ってみました。


十分動作確認したわけではないので、参考程度としてください。

Private Sub CommandButton1_Click()

Dim strSrc As String
Dim strDst() As String

strSrc = "ABC DEF GHI JKLMN"
strDst = split2(strSrc, " ")

End Sub

Private Function split2(ByVal strSrc As String, ByVal strDelimiter As String) As String()

Dim iTop As Integer
Dim iEnd As Integer
Dim iIndex As Integer
Dim strDst() As String

iIndex = 0
iTop = 1
Do
iEnd = InStr(iTop, strSrc, strDelimiter)
ReDim Preserve strDst(iIndex)
If iEnd = 0 Then
strDst(iIndex) = Mid(strSrc, iTop)
Else
strDst(iIndex) = Mid(strSrc, iTop, iEnd - iTop)
iIndex = iIndex + 1
iTop = iEnd + 1
Do While Mid(strSrc, iTop, 1) = strDelimiter
iTop = iTop + 1
Loop
End If
Loop While iEnd <> 0

split2 = strDst

End Function
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。
完璧でした。質問して良かったです。
こんな方法があるなんて思いもしませんでした。とても勉強になりました。

お礼日時:2007/05/27 11:13

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