tagCANDY CGI VBレスキュー(花ちゃん) - 不特定の列数のCSVファイルの取込(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
不特定の列数のCSVファイルの取込(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

不特定の列数のCSVファイルの取込(VB6.0) [No.39の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2007/09/14 20:43
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[ファイル入出力][][]                                                *
* キーワード:CSVファイル,読み込み,,,,                                            *
***********************************************************************************

元質問内容     不特定CSV取込 - 砂嵐 2002/11/27-10:13 No.1572

たとえば  テキストファイル(csvファイル)の中身が
1,東京,435,54
2,大阪,543
3,名古屋
4,福岡
の様に列数がばらばらの場合どうしたらよいですか?
-----------------------------------------------------
-------------------------------------------------------------------------
投稿時間:2002/11/27(Wed) 15:27          No.1586
投稿者名:花ちゃん
タイトル:Re^3: 不特定CSV取込(これではだめ!)
-------------------------------------------------------------------------

下記ではだめでしょうか? 但しVB6.0 (VB5.0 では不可)

Private Sub Command1_Click()
    Dim strTextLine As String
    Dim TmpTxt()    As String
    Dim dataN       As Integer
    Dim i           As Long
    Dim intFileNo   As Integer
    intFileNo = FreeFile
    Open "c:\sample.csv" For Input As #intFileNo
    Do While Not EOF(intFileNo)
        Line Input #intFileNo, strTextLine
        TmpTxt = Split(strTextLine, ",")
        dataN = UBound(TmpTxt)
        For i = 0 To dataN
            Debug.Print Replace(TmpTxt(i), """", "") & "   ";
        Next i
        Debug.Print
    Loop
    Close #intFileNo
End Sub
メンテ

Page: 1 |

不特定の列数のCSVファイルの取込(VB6.0)_1  (No.1の個別表示) [スレッド一覧へ]
日時: 2011/04/05 11:30
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[ファイル入出力][][]                                                *
* キーワード:CSVファイル,読み込み,,,,                                            *
***********************************************************************************

-----------------------------------------------------------------------------
投稿時間:2002/11/28(Thu) 18:42    No.1624
投稿者名:Lantern
タイトル:Re^3: 不特定CSV取込
------------------------------------------------------------------------------
> 1行づつ読みWRITE#で書きこんだ場合、文字列は""で囲まれます。
> バイナリモードでオープンすると""は省かれるということですが、
> バイナリモードでオープンした場合WRITE#が使えませんでした。
> これもバージョンなど関係するのでしょうか?

バイナリモードでは
"Put","Get"を使用しますね


バイナリモードでのデータの取り扱われ方について
簡単なサンプルを作ってみました^^
プロジェクトの保存先に"test.txt"というファイルを
作って、"A"と書かれたファイルを置きます("は要らないです)

Private Sub Command1_Click()
    Dim ff As Integer
    Dim s As String * 1
    Dim i As Integer
    Dim b(1) As Byte
    
    ff% = FreeFile()
    Open App.Path & "\" & "test.txt" For Binary Access Read As #ff%
        Get #ff%, , s$
    Close #ff%
    ff% = FreeFile()
    Open App.Path & "\" & "test.txt" For Binary Access Read As #ff%
        Get #ff%, , i%
    Close #ff%
    ff% = FreeFile()
    Open App.Path & "\" & "test.txt" For Binary Access Read As #ff%
        Get #ff%, , b()
    Close #ff%
    Debug.Print s$
    Debug.Print Hex$(i%)
    Debug.Print Hex$(b(0)) & Hex$(b(1))
End Sub
メンテ
不特定の列数のCSVファイルの取込(VB6.0)_2  (No.2の個別表示) [スレッド一覧へ]
日時: 2011/04/05 11:30
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[ファイル入出力][][]                                                *
* キーワード:CSVファイル,読み込み,,,,                                            *
***********************************************************************************

----------------------------------------------------------------------------------
投稿時間:2002/11/27(Wed) 11:31       No.1578
投稿者名:とろ
タイトル:Re^3: 不特定CSV取込
----------------------------------------------------------------------------------
ホントに大雑把に回答します。
d:\data.txt というテキストファイルに以下の内容を書き込んで、プログラムを実行してみて下さい。
イミディエイトウィンドウが同じ結果になるか確認して下さい。

# データファイルの先頭行からデータが入っている場合には、別途 Schema.ini ファイルを用意する必要があります。

** d:\data.txt **
F1,F2,F3,F4
1,東京,435,54
2,大阪,543
3,名古屋
4,福岡

** コード **
Private Sub Form_Load()
  Dim cn As Object 'ADODB.Connection
  Dim rs As Object 'ADODB.Recordset
  Set cn = CreateObject("ADODB.Connection")
  cn.Open "Provider=MSDASQL.1;Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\;"
  Set rs = CreateObject("ADODB.Recordset")
  rs.Open "select * from [data.txt]", cn
  Do While rs.EOF = False
    Debug.Print rs(0), rs(1), rs(2), rs(3)
    rs.MoveNext
  Loop
  rs.Close: Set rs = Nothing
  cn.Close: Set cn = Nothing
End Sub

** イミディエイトウィンドウ **
1  東京    435   54
2  大阪    543   Null
3  名古屋  Null  Null
4  福岡  
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ