• 締切済み

CSVファイルの読込

Dim strTxt Set Obj = CreateObject("Scripting.FileSystemObject") Set ObjF = Obj.OpenTextFile(フルパス) strTxt = ObjF ObjF.Close 変数strTxtに、ファイルの内容を格納したいのですが、 どうも上手くいかないんです。 基本的に、どう記述すれば良いのでしょうか?

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

Read??? メソッド

参考URL:
http://www.google.co.jp/search?&q=OpenTextFile&hl=ja&lr=lang_ja
Kalen_F
質問者

補足

以下に記述を変更しました。 Dim cnt As Long Dim intFileNo As Integer Dim strYubin() As String Dim strAddre() As String Dim strNamae() As String cnt = 0 '使用可能なファイルナンバーを取得 intFileNo = FreeFile 'シーケンシャル入力モードでオープン Open gFilePass & "\" & str_FileName For Binary As #intFileNo If EOF(intFileNo) = True Then MsgBox "ファイルにデータがありませんでした。", vbExclamation, "ファイルデータ内容" Close #intFileNo Exit Sub End If cnt = 0 'EOF(intFileNo)が True になるまで実行 Do Until EOF(intFileNo) cnt = cnt + 1 '件数をカウント '変数を1個づつ追加宣言 ReDim Preserve strYubin(cnt) As String ReDim Preserve strAddre(cnt) As String ReDim Preserve strNamae(cnt) As String 'データを各変数に読込 Input #intFileNo, strYubin(cnt), strAddre(cnt), strNamae(cnt) Loop Close #intFileNo が、 Input #intFileNo, strYubin(cnt), strAddre(cnt), strNamae(cnt) の行で、 エラー番号62: これ以上ファイルにデータがありません。 とエラーが出てしまいます。 何が間違っているんでしょうか? 明確な指摘を下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • csvファイルを読み込む方法について

    aspにてscvファイルを読み込む際、直接ファイル名を指定するとうまくいくのですが、ファイル名を変数で指定しようとすると、「ファイルが見つかりません」というエラーになってしまいます。どのように記述すれば良いでしょうか。お教えください。よろしくお願いいたします。 (例) 'OK Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath("aaa.csv"),1) 'NG fname = "aaa.csv" Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath(fname),1) また、 Set objText = objFS.OpenTextFile(Server.MapPath("""" & fname & """"),1) としてもダメでした。以上です。

  • CSVファイル

    CSVファイルを1行ずつ比較して読み込み、一致した行を別ファイルに記述していこうと思っています。 現在、csvファイルを読み込む所まで出来ています。 比較して別ファイルに記述する方法を教えて下さい。 もしくはアドバイスください。 【ファイルの中身】 "09/09/2005 0:00:00,aaa,bbb,ccc" 【比較条件】 当日の日付を取得し、年月日だけで比較する Dim objFSO ' FileSystemObject Dim objFile ' ファイル読み込み用 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("c:\test.csv") Do while objFile.ReadLine <> ""         'IF文を記述(条件:日付)        '別ファイルに記述する Loop objFile.close Set objFileSystem = Nothing Set objFile = Nothing

  • CSVファイルの読み込み

    ASPの勉強をしています。 CSVファイルを読み込んでDBに登録していきたいのですが、 111,222,"aaa[改行]bbb","1,000",444,555 のようなデータがあったとすると、 「1,000」の桁区切りのカンマのせいで、 「1」 と 「000」に別れてしまいます。 これを防ぐプログラムを作りたいのですが、 わかる方よろしくお願いします。 現在はReadLineで1行ずつ読み込んでいます。 set ObjFS = CreateObject("Scripting.FileSystemObject") set Stream = ObjFS.OpenTextFile(Server.MapPath(FILENAME,1,false,0) ReadBuf = Stream.ReadLine

  • VBSでテキストファイルを作成

    こんにちは。 set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") を実行すると、実行したスクリプトが存在する場所に「倉庫」という名のフォルダが作成されます。 その倉庫というフォルダの中にテキストファイルを作成するにはどうすればよいでしょうか? set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") set fo = fso.opentextfile(FILENAME) close.fo 相対的にファイルの場所を指定する方法がわかりません。 絶対パスでないとだめなのでしょうか?

  • VB6でFileSystemObjectで読込

    Visual BasicV6でFileSystemObjectを(もし必要ならTextStream オブジェクトも)使って、テキストファイルを変数に読み込む実例を作っていただけませんでしょうか。 UTF-8コードのテキストファイルを読み込みたいのですが、当方、VB.NETは使えないし、MS社などのFileSystemObjectの使い方についての下記説明を見ても、どこで変数に入っていることが分からないため、お願いいたします。 Dim fso, MyFile Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile = fso.CreateTextFile("c:\testfile.txt", True) MyFile.WriteLine("This is a test.") MyFile.Close Visual BasicV6自体は十分使えますが、FileSystemObjectなどについては全く分かりません。よろしくお願いいたします。

  • VB6.0 CreateObject以外のファイルI/O

    以前CreateObject("Scripting.FileSystemObject")を使用してファイルを読込む方法、一行ずつ書込む方法を教えていただいたのですが。 環境によってはウイルスチェックに引っかかってしまうようで、別な手段を取らなければならなくなりました。 読込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 1) strData = CStr(objTxtSt.ReadAll()) 書込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 2, False) Call objTxtSt.WriteLine(strData) 現在の処理は以上です。 上記と同じ処理をCreateObjectを使用せずに作成するにはどのようにすればよろしいでしょうか。

  • 【VBScript】ディレクトリ内のファイルを、リストを読み込んで分割

    【VBScript】ディレクトリ内のファイルを、リストを読み込んで分割 ■プログラム及びファイルに関する備考 .\test\     = 分割を行いたいファイルが格納されたディレクトリ Dir_FileList.txt = testディレクトリ内のファイルをリスト化したもの。           相対パスにて、1行ずつ改行して記述する。 ■やりたい事 Dir_FileList.txtという、.\test\内に配置されたファイルをリスト化したtxtを 1行ずつ読み込み、読みこんだファイルに対し、10行毎に分割処理を行いたいと思っています。 分割したファイルは、分割元のファイルが格納されたディレクトリと同じ、.\test\ディレクトリに作成し、 分割前の元ファイルを最後に削除するという処理をリストに書かれた全てのファイルに対して行いたいです。 下記のようにコーディングをしたのですが、 どうも「Do Until ( fILE1.AtEndOfStream )」のループ文の処理が行われていない?ようで、 testディレクトリ内部のファイルが分割されません。 色々試したのですが、VBScriptを触るのは初めてでなかなか上手くいきませんでした。 どこが間違っていて、どのように修正すれば動くようになるでしょうか? お手数ですが、ご教授をお願い致します。 ---------------------------------------- Option Explicit Dim flReadFSO, flReadFSO2, fFolder, fILE, flrSubFolder Set flReadFSO = CreateObject("Scripting.FileSystemObject") Set flReadFSO2 = WScript.CreateObject("Scripting.FileSystemObject") Set fFolder = flReadFSO2.GetFolder(".") Dim name1, fILE1 name1 = fFolder & "\Dir_FileList.txt" Set fILE1 = flReadFSO.OpenTextFile(name1) Dim oneLineTxt oneLineTxt ="" Dim FSO set FSO = WScript.CreateObject("Scripting.FileSystemObject") Do Until ( fILE1.AtEndOfStream ) oneLineTxt = fILE1.ReadLine WScript.Echo oneLineTxt arg = ".\test\test01.txt" set fin = FSO.OpenTextFile(arg, 1) fbn = FSO.GetBaseName(arg) fen = FSO.GetExtensionName(arg) nf=0 set fout = FSO.OpenTextFile(".\test\" & fbn & "_" & nf & "." & fen, 2, true) nl=0 Do While Not fin.AtEndOfStream fout.WriteLine fin.ReadLine nl=nl+1 if nl>9 then fout.Close nf=nf+1 if nf>9 then exit do set fout = FSO.OpenTextFile(".\test\" & fbn & "_" & nf & "." & fen, 2, true) nl=0 end if Loop fin.Close FSO.DeleteFile arg, True Loop fILE1.Close ----------------------------------------

  • ファイルへの書き込み

    いままでPrintメソッドを使って書き込みしていました。 ちょっと志向を変えてオブジェクト(?)をつかってプログラミングしています。 ファイルの書き込みでつまづいたので教えてください。 真ん中くらいに質問文があります Dim objFileSystem As Object Dim objFile As Object Dim strFileName As String Dim strBuff As String ' 読み込むファイル名 strFileName = "Readme.txt" ' FileSystemObjectオブジェクトへの参照 Set objFileSystem = CreateObject("Scripting.FileSystemObject") ' ファイルを開く Set objFile = objFileSystem.OpenTextFile(strFileName) ' ファイルの最後に達するまでループ strBuff = strBuff + naiyo.Text   'ここで質問。この書き方だとファイルモードが不正とエラーが出ます。   'この部分どう書けばよいのでしょうか? objFile.writeline (strBuff) ' ファイルを閉じる objFile.Close ' オブジェクトを解放 Set objFileSystem = Nothing Set objFile = Nothing オブジェクト変数(というのでしょうか(^^ゞ)を使ったファイルの書き込み方教えてください。

  • VB6.0にて、CSVファイルを読み込もうとしているのですが、1行ずつ

    VB6.0にて、CSVファイルを読み込もうとしているのですが、1行ずつ読み込めません。 以下のコードで、Lineのメッセージボックスが表示されないのです。 どなたか教えていただけないでしょうか。よろしくお願いします。 'CSVファイル読み込み Sub Stream() Dim Line, Temp As Variant Dim objFSO As Object Dim objStream As Object Const ForReading = 1, ForWriting = 2, ForAppending = 3 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objStream = objFSO.OpenTextFile(strDFpath & strDFname(1), ForReading, False) Temp = objStream.ReadAll MsgBox Temp '最後の行までループ Do Until objStream.AtEndOfLine - 1 <> True '1行読む Line = objStream.ReadLine MsgBox Line Loop objStream.Close Set objStream = Nothing Set objFSO = Nothing End Sub

  • VBAで巨大なファイルの途中からの読み込み

    こんにちは。 EXCELのVBAにて巨大なファイルのデータを途中から読み込む方法がございましたらご教授いただきたいと思っています。 具体的には300万行ほどのCSVデータがありまして たとえば、50万行目のデータを読み込みたい場合下記のようにすることにより、データの取得は可能なのですが、50万行目までSKIPするのに数秒の時間がかかってしまいます。いきなり50万行目からのデータを取得するようなスマートな方法は存在するのでしょうか。 よろしくお願いいたします。 Const ForReading = 1, ForWriting = 2, ForAppending = 3 Dim fs, f Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.OpenTextFile("C:\tmp.csv", ForReading, 0) For w = 0 To 500000 f.skipline Next Debug.Print f.readline f.Close