タイトル | : Re: Line Input で改行コードが邪魔する! |
記事No | : 14012 |
投稿日 | : 2009/09/04(Fri) 18:09 |
投稿者 | : 魔界の仮面弁士 |
> csvファイルからLine Input #で読み込み、Splitで分割していますが、 > まれに、改行コードを含むデータが存在し、思い通りのデータが取り出せません。
Line Input # では無理でしょうね。
そもそも、厄介なのは改行だけではありません。 データ中の「"」や「,」なども問題となるでしょう。
> 改行コードを削除した、1行分のデータを取り出すには、どのようにすればいいでしょうか? Excel で生成した CSV のように、データ内改行が「LF」固定である場合には、 Jet の Text I-ISAM を用いるという手法があります。
たとえば、C:\a.csv を取り出す場合にはこんな感じ。
Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Provider = "Microsoft.JET.OLEDB.4.0" cn.Properties("Extended Properties").Value = "Text;HDR=NO;Database=C:\" cn.Open Set rs = cn.Execute("[a.csv]", , adCmdTable)
Dim csv() As Variant Dim row As Long row = 0 Do Until rs.EOF row = row + 1 csv = rs.GetRows(1) Dim v As Variant Debug.Print Tab(1); row; For Each v In csv Debug.Print ",[" & v & "]"; Next Loop rs.Close cn.Close
なおこの手法を用いる場合には、型指定のために SCHEMA.INI を併用する事をお奨めします。
|