VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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

のような処理でいけるかも知れません。試していませんけど。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -