[リストへもどる]
一括表示

投稿時間:2003/12/10(Wed) 15:54
投稿者名:VB勉強中
Eメール:
URL :
タイトル:
配列について
過去のホームページを見ても、どうしても出来なかったのでご教授下さい。
「タブで区切られた文字列から1次元配列を作成」というものを拝見し、
このようなコードにしています。
    Open "data.dat" For Binary As #3
    Get #3, , Data
    Close #3
  AddData() = Split(Data, vbTab)
というようにAddData()に代入して、データを参照しようとAddData(i)と
しても、Add(1),Add(2)としてもデータを参照できません。デバッグして
見てみたら、AddData(0)にすべてのデータが代入されてしまいます。
テキストファイル(タブ区切り)のファイルをうまく配列に代入していく
方法はないでしょうか?

投稿時間:2003/12/10(Wed) 16:30
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 配列について
下記のように追加しても同じでしょうか?
Dataの中に間違いなくvbTabが存在していますか?
    Open "data.dat" For Binary As #3
    Get #3, , Data
    Close #3
    Data = StrConv(Data, vbUnicode)
    AddData() = Split(Data, vbTab)

投稿時間:2003/12/10(Wed) 16:50
投稿者名:VB勉強中
Eメール:
URL :
タイトル:
Re^2: 配列について
アドバイスありがとうございます。追加しても同じでした。
Dataの中にvbTabがないかもしれません。
まず自分が処理したいデータのスペースのサイズを
そろえて新たなファイルに書き込みをしています。
このコードです↓
    Open File For Input As #1
    Open "data.dat" For Output As #2
    
    Do While Not EOF(1)
     Line Input #1, Data
        Data = Replace(Data, "    ", " ") 'スペースのサイズ変更
        Data = Replace(Data, "   ", " ")
        Data = Replace(Data, "  ", " ")
        
        DataCnt = DataCnt + 1
        
    Write #2, Data
    Loop
    Close #1
    Close #2

そして先ほど投稿したこのコードで配列に代入しています。
上のコードでスペースを1つ分にして、その後その1つ1つを
配列に代入できないかと思いこのようなコードになりました。

Open "data.dat" For Binary As #3
    Get #3, , Data
    Close #3
    Data = StrConv(Data, vbUnicode)
    AddData() = Split(Data, vbTab)

お手数ですがお願いします。

投稿時間:2003/12/10(Wed) 17:26
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^3: 配列について
色々気になったのでいくつかツッコミさせていただきます。

・data.datの中身は確認されたのでしょうか?

・TABとスペースは別物、全く関係ありませんよ。

・またWriteステートメントで出力した場合、文字列はダブルクォーテーションで囲われますが、
 それでよろしいのでしょうか?

・Getで取ってきたデータの中身は確認されましたか?

投稿時間:2003/12/10(Wed) 23:08
投稿者名:VB勉強中
Eメール:
URL :
タイトル:
Re^4: 配列について
ご指摘ありがとうございました。
Writeステートメントで出力した場合、文字列はダブルクォーテーションで囲われるんですね・・・
勉強不足でした。もう1度考え直してみます。
皆さん、ありがとうございました!!