C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 103 を表示中)
■61476 / )  Re[2]: CSVデータの一部分のみ読み込む
□投稿者/ JRY (8回)-(2011/08/15(Mon) 20:28:38)
No61471 (魔界の仮面弁士 さん) に返信
> ■No61470 (JRY さん) に返信
>>あるCSVデータの一部分のみを読み込む方法はありますか?
> CSV はシーケンシャルテキストなので、ランダムアクセスはできません。
> ゆえに先頭から順に読んでいき、不要な部分は読み捨てるといった作業が必要です。
>
>>(0,4)のように、縦と横を指定できるのが理想です。
> 面倒なら、全データを DataTable か二次元配列に取り込んでおけば、
> 行・列を指定してデータを取り出す事も容易になるかと思います。
>
>>自分でも探しましたが見つかりませんでした。
> データ中の「改行」「引用符」「カンマ」を許すかどうかで取得難易度が変わりますが、
> 一部のみを読み取るという行為にさえ拘らなければ、いくつかのサンプルが見つかるかと思います。
>
> http://jeanne.wankuma.com/tips/vb.net/string/split.html
> http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html
> http://dobon.net/vb/dotnet/file/readcsvfile.html
> http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.CSV1d.htm

ありがとうごさいます。
いろいろと試してみたのですが、できませんでした。

http://hanatyan.sakura.ne.jp/vbhlp/txt01.htm
このサイトにて、次のコードがありました。

'CSV形式ファイルを変数毎に読み書きする
  lngDatN = 0
  '使用可能なファイルナンバーを取得
  intFileNo = FreeFile

  'シーケンシャル入力モードで sample.csv をオープン
  Open "sample.csv" For Input As #intFileNo
  'EOF(intFileNo)が True になるまで実行
  Do Until EOF(intFileNo)
    lngDatN = lngDatN + 1   '件数をカウント
    '変数を1個づつ追加宣言
    ReDim Preserve strYubin(lngDatN) As String
    ReDim Preserve strAddre(lngDatN) As String
    ReDim Preserve strNamae(lngDatN) As String
    'データを各変数に読込
    Input #intFileNo, strYubin(lngDatN), strAddre(lngDatN), _
                strNamae(lngDatN)
  Loop
  'ファイルを閉じる
  Close #intFileNo

  '4番目のデータを表示
  Text2.Text = 4
  Text3.Text = strYubin(4)
  Text4.Text = strAddre(4)
  Text5.Text = strNamae(4)
これは使えると思いましたが、
Open "sample.csv" For Input As #intFileNo
の部分でいくつかエラーが出てしまいました。(宣言はしています)
# = メソッドはカッコで囲む必要があります
open = openは宣言されていません
for = コンマ、')'、または有効な式の継続文字が必要です
"sample.csv" =メソッドの引数は、かっこで囲む必要があります

なにか解決法はありますでしょうか?
返信 編集キー/


管理者用

- Child Tree -