タイトル : Re: Line Input で改行コードが邪魔する! 投稿日 : 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 を併用する事をお奨めします。 |