csvファイルの扱い方

解決


さあや  2005-07-27 14:39:33  No: 123769  IP: [192.*.*.*]

任意のcsvファイルを読み込んで  そのレコードをテキストボックスに
表示したいのですが  ※で「配列がありません」というエラーがでます。

Dim strNo   As String
Dim strNm   As String
Dim lngDatN    As Long
Dim intFileNo   As Integer
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Private Sub cmd_Click(Index As Integer)



    'ファイル読み込みボタン押下時
    Case cmd(2)
        '選択ファイル名の表示をクリア
        CommonDialog1.FileName = ""
        CommonDialog1.FilterIndex = 0
        'ファイルの種類
        CommonDialog1.Filter = "csvファイル(*.csv)|*.csv"
        'ファイルを開くダイアログを表示する
        CommonDialog1.ShowOpen

        'CSV形式ファイルを変数毎に読み書きする
        lngDatN = 0
        '使用可能なファイルナンバーを取得
        intFileNo = FreeFile
        'シーケンシャル入力モードで  list_01.csv  をオープン
        Open "M:\list_01.csv" For Input As #intFileNo
        'EOF(intFileNo)が True になるまで実行
        Do Until EOF(intFileNo)
            '件数をカウント
            lngDatN = lngDatN + 1
            '変数を1個づつ追加宣言
            ReDim Preserve strNo(lngDatN) As String・・・※
            ReDim Preserve strNm(lngDatN) As String
            'データを各変数に読込
            Input #intFileNo, strNo(lngDatN), strNm(lngDatN)
        Loop
        'ファイルを閉じる
        Close #intFileNo
        
        '1番目のデータを表示
        Text1.Text = strNo(1)
        Text2.Text = strNm(1)



End Sub

編集 削除
id_rsa+  2005-07-27 14:43:00  No: 123770  IP: [192.*.*.*]

Dim strNo()   As String

編集 削除
いな  2005-07-27 14:49:47  No: 123771  IP: [192.*.*.*]

ついでに、
Dim strNm() As String

編集 削除
id_rsa+  2005-07-27 15:20:26  No: 123772  IP: [192.*.*.*]

>Case cmd(2)
これは、大丈夫???

編集 削除
さあや  2005-07-27 15:22:26  No: 123773  IP: [192.*.*.*]

ありがとうございました。
表示はできるようになったのですが  任意のcsvファイルを読み込ませるには
↓のコードを  どう訂正すればいいでしょうか?

        'CSV形式ファイルを変数毎に読み書きする
        lngDatN = 0
        '使用可能なファイルナンバーを取得
        intFileNo = FreeFile
        'シーケンシャル入力モードで  list_01.csv  をオープン
        Open "M:\list_01.csv" For Input As #intFileNo
        'EOF(intFileNo)が True になるまで実行
        Do Until EOF(intFileNo)
            '件数をカウント
            lngDatN = lngDatN + 1
            '変数を1個づつ追加宣言
            ReDim Preserve strNo(lngDatN) As String
            ReDim Preserve strNm(lngDatN) As String
            'データを各変数に読込
            Input #intFileNo, strNo(lngDatN), strNm(lngDatN)
        Loop
        'ファイルを閉じる
        Close #intFileNo

編集 削除
いな  2005-07-27 15:33:52  No: 123774  IP: [192.*.*.*]

'シーケンシャル入力モードで  list_01.csv  をオープン
Open "M:\list_01.csv" For Input As #intFileNo

ってのを
Dim strInputFileName as String
Open strInputFileName For Input As #intFileNo

などにして、
strInputFileName
にファイルのフルパスを格納しては?
Dim strInputFileName as String
strInputFileName = "M:\list_01.csv" '←ここを変更する
Open strInputFileName For Input As #intFileNo

編集 削除
通ってみた  2005-07-28 06:28:22  No: 123775  IP: [192.*.*.*]

コモンダイアログ使ってる意味がないね


>>任意のcsvファイルを読み込ませるには
って言ってるけど、コードのコメントには
>>'シーケンシャル入力モードで  list_01.csv  をオープン
って思いっきり書いてあるし

コードをどこかからパクるのはいいけど、意味を理解しないと今後使えないよ

編集 削除
...  2005-07-28 09:45:35  No: 123776  IP: [192.*.*.*]

> 意味を理解しないと今後使えないよ

こうして、使えないプログラマが誕生するわけですね。

いなさんのコードに
> strInputFileName = "M:\list_01.csv" '←ここを変更する
の右辺の値に何を指定すればよいか考えましょう

編集 削除
さあや  2005-07-28 12:24:47  No: 123777  IP: [192.*.*.*]

ありがとうございました

編集 削除
通ってみた  2005-07-28 13:22:01  No: 123778  IP: [192.*.*.*]

この質問者、毎度なんだけどさぁ


どう解決したのか書いた方がいいよ
たぶん解決してないと思うけど

編集 削除
ななし  2005-07-28 13:48:47  No: 123779  IP: [192.*.*.*]

この質問者、↑の方もおっしゃるように、

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200507/05070003.txt
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200507/05070021.txt
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200507/05070060.txt

毎回いいかげんな対応ばかりされています。
本人の解決には役立っているのでしょうが、掲示板全体の為にはほとんど役立っていません。
もうこの名前の人には回答やめてスルーにしませんか?

編集 削除
いな  2005-07-28 14:17:31  No: 123780  IP: [192.*.*.*]

上記のリンク、3つとも返事かいているんだなぁ〜。
ま、名前で攻撃するつもりは無いけど、

...さんの言うとおり、
お礼はともかく、解決報告はしてください。
> 問題の解決で恩恵を受けた人が、問題・解決・参照リンクなどを簡潔に記
述し、
> まとめとして投稿しましょう。
> 情報を送ってくれた人たちへのお礼も大事ですけれど、
> もっと大事なのは掲示板を支えている人々への情報のフィードバックです。

編集 削除