投稿日 | : 2007/03/07(Wed) 12:13 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^7: カンマ区切りのCSVファイルの読み込み |
> 提示したデータが誤っていました。
(中略)
> "3ABC,DEG,GHI","3ABC,DEF,GHI"
> "4ABC,DEG,GHI"
列数可変のCSVの場合、最終行の扱いも重要です。
A.CSV …… "3ABC,DEG,GHI","3ABC,DEF,GHI"(改行)"4ABC,DEG,GHI"(ファイル終端)
B.CSV …… "3ABC,DEG,GHI","3ABC,DEF,GHI"(改行)"4ABC,DEG,GHI"(改行)(ファイル終端)
という 2種のファイルがあった場合、
A.CSV は 2行構成(1行目=2列、2行目=1列)である事が明らかですが、
B.CSV は 3行構成(1行目=2列、2行目=1列、3行目=0列)か 2行構成かが曖昧になりますので。
> Splist関数内で正規表現とか使えませんし、
データ中に含まれる特殊記号が「,」だけで、「"」や改行がありえないなら、
Line Input #fno, rawLineText
Cols = Split(rawLineText, """,""")
If LBound(Cols) <= UBound(Cols) Then
Cols(LBound(Cols)) = Mid(Cols(LBound(Cols)), 2)
Cols(UBound(Cols)) = Left(UBound(Cols), Len(UBound(Cols)) - 1)
End If
のような処理でいけるかも知れません。試していませんけど。