電子書籍の厳選無料作品が豊富!

以前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を使用せずに作成するにはどのようにすればよろしいでしょうか。

A 回答 (3件)

基本的な命令ならまずマニュアルで調べるのが妥当な方法だと思いますよ


VB付属のMSDNや Webの http://msdn.microsoft.com/ja-jp/library/default. …
などで ・・・

ファイルの削除なら『Kill』、存在の確認には『Dir』で出来ると思いますよ

この回答への補足

以下の補足です。
Open strPass For Output As #iFile
Close #iFile
ファイル作成はこの記述になるのでしょうか。
ファイルは作成されるのですが、ファイル作成→書込みと一連の流れを行うときのみ使用するものかと思っていたのですが。
Open strPass For Output As #iFile
Print #iFile, strData
Close #iFile

補足日時:2009/10/01 09:52
    • good
    • 0
この回答へのお礼

Kill、Dirとも使用できました有難うございます。
調べ方についてですが。
>VB付属のMSDN
諸事情で参照することができません。
>WebのMSDN
「VB6.0 ファイル作成」「ファイル操作」「ファイル削除」などで検索しても、CreateObjectは見つかるのですがそれ以外の手段を見つけられませんでした。(Kill、Dirも発見できません)
MSDNより「Visual Basic 6.0 と Visual Basic .NET とのフォルダやファイルの操作方法の違いについて」

.NET系は割と探しやすいのですが、6.0ですとどうもうまく検索できません。
因みに「VB6.0 Kill」では、質問は出てくるのですが関数の詳細は出てきませんでした。

あとはファイル作成を実現したいのですが、どのように調べればよいでしょうか。

お礼日時:2009/10/01 09:34

GoogleやYahooなどの一般検索サイトの方がいいかもしれません



有名所では『VBレスキュー(花ちゃん)』http://hanatyan.sakura.ne.jp/index.html
などがあります

VB6用の入門書でもいいかもしれません
逆引き辞典 ってのも有効かもしれません

最低限 VB付属のMSDNは手元にあった方が効率いいですよ

Open ファイル名 for output as #ff
Close #ff
で 中身は何もないファイルが生成されます

VB6自体のサポートは終了してしまったはずですから Microsoftのサイトから無くなってしまっていても不思議ではないですね

Office(ExcelやWord)のVBAのヘルプが使えるならこちらを代用してみるのも手ですが ・・・
    • good
    • 0
この回答へのお礼

>有名所では『VBレスキュー(花ちゃん)』​
http://hanatyan.sakura.ne.jp/vbhlp/reference.htm
お陰さまでVBのリファレンスを発見できました。
Dirやkillもありました。
MkDirのようにフォルダを作成する関数は存在しましたが、ファイルを作成する関数はないようですので
Open ファイル名 for output as #ff
で良いみたいですね。
>VB6自体のサポートは終了してしまったはずですから
どうりで出てこないわけですね。
有難うございました。

お礼日時:2009/10/02 14:33

> 上記と同じ処理をCreateObjectを使用せずに作成するにはどのようにすればよろしいでしょうか。



VB標準のファイルIOステートメント(Open #, Input #, Print #, Close #等)かWinAPIですね。

' ファイル全体を読み込む(テキストモード)
Dim intFile As Integer
Dim strLineInput As String
Dim strFilePath As String
Dim strFileBuff As String

intFile = FreeFile()
strFilePath = "C:\hoge.txt"

Open strFilePath For Input As #intFile

While Not EOF(intFile)
Line Input #intFile, strLineInput

If strFileBuff <> "" Then strFileBuff = strFileBuff & vbCrLf

strFileBuff = strFileBuff & strLineInput
Wend

Close #intFile

Debug.Print strFileBuff


' ファイルに1行を書き加える
Dim intFile As Integer
Dim strFilePath As String
Dim strNewLine As String

intFile = FreeFile
strFilePath = "C:\hoge.txt"
strNewLine = CStr(Now)

Open strFilePath For Append As #intFile
Print #intFile, strNewLine
Close #intFile


WinAPIでのコードは省略。
    • good
    • 0
この回答へのお礼

上記のコードで実装できました、有難うございます。
図々しいですが、追加で質問させてください。
ファイル作成と削除、存在チェックに関してです。
作成:
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTxtSt = objFso.CreateTextFile(strpFilePass)
削除:
Set objFso = CreateObject("Scripting.FileSystemObject")
Call objFso.DeleteFile(strpFilePass, True)
存在チェック:
Set objFso = CreateObject("Scripting.FileSystemObject")
Exist = objFso.FileExists(strpFilePass)
上記に相当する関数は存在しますでしょうか。

お礼日時:2009/09/30 17:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!