csvファイルの扱い方

解決


さあや  2005-07-27 23:39:33  No: 123769

任意の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 23:43:00  No: 123770

Dim strNo()   As String


いな  2005-07-27 23:49:47  No: 123771

ついでに、
Dim strNm() As String


id_rsa+  2005-07-28 00:20:26  No: 123772

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


さあや  2005-07-28 00:22:26  No: 123773

ありがとうございました。
表示はできるようになったのですが  任意の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-28 00:33:52  No: 123774

'シーケンシャル入力モードで  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 15:28:22  No: 123775

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

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

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


...  2005-07-28 18:45:35  No: 123776

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

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

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


さあや  2005-07-28 21:24:47  No: 123777

ありがとうございました


通ってみた  2005-07-28 22:22:01  No: 123778

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

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


ななし  2005-07-28 22:48:47  No: 123779

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

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 23:17:31  No: 123780

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

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加