プロが教える店舗&オフィスのセキュリティ対策術

.net VB 2010 初心者です。VB 6.0は、少々分かります。
よろしくお願い致します。

.net VB 2010を使用して、CSVファイルを読み込みたいのです。
列は固定、行は可変です。

配列で、buf(行,列)のように読み込みたいのです。
これだと、10行、3列目と実際とイメージが合致するからです。

これは、どのように実現可能か教えてください。
buf(10,3)ではなく、もっと良い方法があるのであれば、そちらをよろしくお願い致します。

列は、1列目:No.、2列目:フルネーム、3列目:略語、4列目:更新日
となっています。

なので、1行目のフルネームの取り出し、2行目の略語の取り出しでもOKです。


どうぞよろしくお願い致します。

A 回答 (2件)

CSVファイルをシーケンシャルファイルで読んで、カンマで分解。


VB6も2010でも動くはず

dim strBuffer as string
Dim nFile as integer
Dim strArray() as string
Dim nArray as long

nFile = freefile()
open "C:¥hogehoge.csv" for input as #nfile

While not(eof(nfile))
Line Input #nFile, strBuffer
Strarray=split(strbuffer,",")
narray=ubound(strArray())
if nArray> 3 Then
debug.print strarray(0), strarray(2)) ’ここでデータを利用
end if
wend
Close

タブレット手書き入力なので文字の大小不統一はお許し下さい

この回答への補足

ありがとうございます。

下記で動きましたが・・・

strArrayには、カレント行が1行読み込まれます。
私のイメージとしては、strArrayは二次元配列でstrArray(行,列)としたいのです。
行は可変、列は3(0~3)

または、strArray(2).フルネーム (3行目のフルネーム) でデータを取り出したいと考えています。

CSVファイルは、小さなサイズなので全体を読み込んでプログラム中に持っていたいのです。


何か良い方法がありましたら、ご教授の程よろしくお願い致します。



Sub Main()
Dim strBuffer As String = ""
Dim nFile As Integer = 0
Dim strArray() As String = Nothing
Dim nArray As Long = 0

nFile = FreeFile()

FileOpen(nFile, "C:\test\ItemConf.csv", OpenMode.Input)

While Not (EOF(nFile))
strBuffer = LineInput(nFile)

strArray = Split(strBuffer, ",")
nArray = UBound(strArray)
If nArray > 3 Then
Debug.Print(strArray(0), strArray(2))
End If
End While
FileClose()

End Sub

補足日時:2013/11/27 17:53
    • good
    • 0

C#でCSVファイルを取り込む処理を扱ったことがあります。


そのときは、この処理のためにCSVクラスを自作しました。
String型の2次元配列をフィールドとして、ファイル名を受け取るコンストラクターで、TextFieldParserを使ってデータを配列に読み込みました。
配列へのアクセスにはインデクサを使いました。
VBでも同様のことができるでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。

コンストラクター?
インデクサ?

という、感じですが、1つ1つ調べていきます。

お礼日時:2013/11/27 17:13

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