■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#14503-0csvファイルのデータ取得についてみん2001-02-14(水) 20:48
     #14505-0RE#14503:csvファイルのデータ取得についてゆう(U)2001-02-14(水) 22:37
     #14512-0RE#14505:csvファイルのデータ取得についてみん2001-02-15(木) 11:11
     #14514-0RE#14512:csvファイルのデータ取得についてゆう(U)2001-02-15(木) 11:38
     #14525-0RE#14514:csvファイルのデータ取得についてみん2001-02-15(木) 18:29
     #14569-0:csvファイルのデータ取得についてみん2001-02-17(土) 18:23
     #14570-0RE#14569::csvファイルのデータ取得についてよねKEN2001-02-17(土) 18:44
#14503-0
csvファイルのデータ取得について
csvファイルのデータの取得なんですけど、ファイル1.CSVとファイル2.CSV
をVbから開こうとするときに、ファイル1.CSVの1行のカンマの数は5つで
ファイル2.CSVの1行のカンマの数が6つの時の場合、両方のcsvとも4つのカンマまでのデータを
変数に入れようとするプログラムを作っているのですが、

Open WG_Copyname For Input As #WL_FileNO

'1行目読み込み(フィールド名)
Line Input #WL_FileNO, WL_strDate

Do Until EOF(WL_FileNO)
'レコードを読み込む
Input #WL_FileNO, 変数1, 
変数2, 変数3,変数4

     LOOP

と書いてしまうと,
LINE INPUTで1行目とってきて、
DO UNTILの中の
INPUTで2行目のデータを取得してしまいます。
なにか、違う方法で、取得は出来ないのでしょうか?
#14505-0
RE#14503:csvファイルのデータ取得について
●質問時には環境を明記した方が良いです

> ファイル2.CSVの1行のカンマの数が6つの時の場合、両方のcsvとも4つのカンマまでのデータを
> 変数に入れようとするプログラムを作っているのですが、

全てLine Inputで1行単位で読みこみ、「Split 関数」
を使い、カンマで区切って必要な部分を取得すると良いです。

VB5.0までなら、「文字列, 操作」の関数を組み合わせて
切り分けるとOKです。
#14512-0
RE#14505:csvファイルのデータ取得について
> ●質問時には環境を明記した方が良いです
> 
vb6.0を使用しています。

> 全てLine Inputで1行単位で読みこみ、「Split 関数」
> を使い、カンマで区切って必要な部分を取得すると良いです。
> 
 早速Split関数を使用してみたのですが、
  Split(WL_strDate, ",")として記述しているのですが、赤文字でエラーになってしまうのですが、
 どこが悪いのかわかりません。
 ヘルプを参考にしてのですが・・・。
#14514-0
RE#14512:csvファイルのデータ取得について
>  早速Split関数を使用してみたのですが、
>   Split(WL_strDate, ",")として記述しているのですが、赤文字でエラーになってしまうのですが、
>  どこが悪いのかわかりません。
実際にどのように書いているのでしょうか?

もしかして返された値を受け取る変数を指定していない・・・とか。

ヘルプによると・・・
 各要素ごとに区切られた文字列から 1 次元配列を作成し、返します。

とありますから、文字列の1次元の配列に受け取ります、
ただ呼ぶ時点では配列数がわかりませんので、()だけで
要素数を記述せずに動的配列として宣言しておきます。

サンプル)
Dim strTemp As String
Dim strArray() As String
strTemp = "123,456,789"
strArray = Split(strTemp, ",")
Debug.Print strArray(LBound(strArray)) ' 確認用
Debug.Print strArray(1)                ' 確認用
Debug.Print strArray(UBound(strArray)) ' 確認用
#14525-0
RE#14514:csvファイルのデータ取得について
> もしかして返された値を受け取る変数を指定していない・・・とか。
> 
そのとおりでした。


ただ単に Split(WL_strDate, ",")と書いていたので、単純ミスでした。
うまくできました。
ありがとうございました。
#14569-0
:csvファイルのデータ取得について
 vb5.0を使用しています。
 
 全てLine Inputで1行単位で読みこみ、「Split 関数」
 を使い、カンマで区切って必要な部分を取得すると良いです。
 
前に6.0の環境で質問したのですが、5.0だとsplit関数が使えません。
他の方法はないでしょうか?
調べてみたのですが・・・。
#14570-0
RE#14569::csvファイルのデータ取得について
> 前に6.0の環境で質問したのですが、5.0だとsplit関数が使えません。
> 他の方法はないでしょうか?

前の質問の流れを知らないので、何かの理由でInput #では都合が悪いのでしょうか?
#Split関数を使えば?って回答がでてるので、何か都合が悪かったのですよね、たぶん。

Split関数を自作するのが一番手っ取り早いですね。

名前の横の■のリンク先でVB5で実現するSplit関数が
ありますので、よかったら参考までに。
このページと関連する記事:
#365-4ファイルからデータの読み込み方。2003-12-04(木) 14:00
#14742-0CSV読込み時の動的配列2001-02-27(火) 12:14
#46125-0CSVの書き込みと読み込みについて2001-08-23(木) 20:18
#18514-0ファイルの「開く」や「保存」について2001-02-07(水) 13:52
#508-3テキストファイルを一気に読み込みたい。2003-12-05(金) 20:54
#20782-0バイナリーモードでファイルを読むには2001-05-09(水) 18:13
#16313-0データの読込み方法2000-11-16(木) 13:01
#27138-0取得データの格納方法2002-02-26(火) 10:06
#28862-0お願い致します。m(__)m2002-05-23(木) 09:40
#10133-0テキストファイルを開く2000-08-01(火) 18:42
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)