[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/08/30(Wed) 15:51
投稿者名:もな
Eメール:
URL :
タイトル:
外部ファイルの操作
お世話になっております。
改めて質問をさせていただきます。

vb 6.0でテキストボックスに入力した値を
外部ファイル(*.txt)にボタンクリックで入力し
そのあと別のボタンクリックで外部ファイルに入力された値を消すという
プログラムを作っています。

入力のプログラムは

Private Sub btn_Run_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Run.Click
        'エラーで処理を中断しないように設定
        On Error Resume Next

        'ファイル番号変更用変数宣言
        Dim intFileNum As Integer

        '空いているファイル番号を取得
        intFileNum = FreeFile()

        'ファイル番号にファイルを割り当てて書き込みで開く
        FileOpen(intFileNum, "C:\VB\Date.txt", OpenMode.Append)

        'エラーが発生していた場合は処理を中断
        If (Err.Number <> 0) Then
            MsgBox("ファイルが開けませんでした")
            Exit Sub
        End If

        Dim strLine As String

        '時刻を書き込む
        Print(intFileNum, Now() & vbCrLf)

        'ファイルを閉じる
        FileClose(intFileNum)
    End Sub

という形で作成しましたが次の入力された値を消すという作業にいきつけません。

kill(ファイルの場所)
という関数を使ったら
ファイルごと消えてしまいました。

なにかヒントなどをいただけたら幸いです。
よろしくおねがいします。

投稿時間:2006/08/30(Wed) 16:01
投稿者名:コーヒーブレイク
Eメール:
URL :
タイトル:
Re: 外部ファイルの操作
>         'エラーで処理を中断しないように設定
>         On Error Resume Next

この部分をコメントアウトすれば、どこでどのような
エラーが発生しているかをデバッグモードで確認出来る
と思いますよ。

答えではなくヒントですが、がんばってみてください。

投稿時間:2006/08/30(Wed) 16:05
投稿者名:もな
Eメール:
URL :
タイトル:
外部ファイルの操作
> >         'エラーで処理を中断しないように設定
> >         On Error Resume Next
>
> この部分をコメントアウトすれば、どこでどのような
> エラーが発生しているかをデバッグモードで確認出来る
> と思いますよ。
>
> 答えではなくヒントですが、がんばってみてください。


回答ありがとうございます!!!
早速実行してエラーをさがしてきます。
実行後結果報告しますね。

投稿時間:2006/08/30(Wed) 16:20
投稿者名:もな
Eメール:
URL :
タイトル:
外部ファイルの操作
うーん、エラーは発生していませんでした。
何か違う原因だとおもいます。
コーヒーブレイクさん、ありがとうございました。

投稿時間:2006/08/30(Wed) 16:04
投稿者名:もな
Eメール:
URL :
タイトル:
外部ファイルの操作
テキストに書き込んだ内容を消すのではなく
上から新たに(" ")と空白を書き込もうと思ったのですが
Print(intFileNum, "C:\VB\Date.txt" = " ", True)
というソースをいれたら
空白ではなくfalse Trueという値が
入力されてしまいました。。
上から空白を書き込む場合はどうしたらよいでしょうか?

投稿時間:2006/08/30(Wed) 16:35
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: 外部ファイルの操作
> vb 6.0でテキストボックスに入力した値を
(中略)
> Private Sub btn_Run_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Run.Click

どうみても VB6 のコードではなく、VB7以上で生成されたものに見えますが……。


VB.NET 2002(VB7) / VB.NET 2003(VB7.1) / VB2005 (VB8) に関する問題であれば、
この掲示板ではなく、VB.NET掲示板の方に移動するべきかと。

投稿時間:2006/08/30(Wed) 16:40
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re^2: 内容がかぶったけど補足
>vb 6.0でテキストボックスに入力した値を
> Private Sub btn_Run_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Run.Click
コードが[VB6.0]のものでなく、[VB.NET]のものに見えますが?
VBのバージョンも分かってないですか?。。。
ちょっと。。。質問する以前に下調べができていませんね。。。

> 上から空白を書き込む場合はどうしたらよいでしょうか?
OpenMode.Append ですよね?それまであったデータを
消さない必要があるのでは?その場合、基本的にはできません。
ファイルのデータを丸ごと読み込んで、修正して丸ごと書き込む
のが基本です。
それまでにあったデータを消していいなら
OpenMode.Input で開いてデータを何も書き込まず閉じれば
いいのでは?

本当に[VB6.0]なら
←に[カテゴリ別サンプル一覧]ってありますよね?
[ファイル操作関係]のサンプルを一通り実行してみることを
お勧めします。ランダムアクセスができるなら考える余地が
ありそうですが。。。

[VB.NET]ならコードが全く変わってきます。
サンプルは[VB.NETTips一覧 他]の[ファイル入出力(8)]あたり。。。
ついでに掲示板も別れているのでここに書くのは板違い。。。

投稿時間:2006/08/30(Wed) 17:09
投稿者名:もな
Eメール:
URL :
タイトル:
外部ファイルの操作
> >vb 6.0でテキストボックスに入力した値を
> > Private Sub btn_Run_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Run.Click
> コードが[VB6.0]のものでなく、[VB.NET]のものに見えますが?
> VBのバージョンも分かってないですか?。。。
> ちょっと。。。質問する以前に下調べができていませんね。。。

ソフトはマイクロソフトビジュアルスタジオ2005っていうのを使っています。
>
> > 上から空白を書き込む場合はどうしたらよいでしょうか?
> OpenMode.Append ですよね?それまであったデータを
> 消さない必要があるのでは?その場合、基本的にはできません。
> ファイルのデータを丸ごと読み込んで、修正して丸ごと書き込む
> のが基本です。
> それまでにあったデータを消していいなら
> OpenMode.Input で開いてデータを何も書き込まず閉じれば
> いいのでは?

ありがとうございました。本当にそのとおりです。
消さないといけないと思い込んでしまっていて、、、、
上から空白の上書きをすることで解決しました★ありがとうございます!!!
> 本当に[VB6.0]なら
> ←に[カテゴリ別サンプル一覧]ってありますよね?
> [ファイル操作関係]のサンプルを一通り実行してみることを
> お勧めします。ランダムアクセスができるなら考える余地が
> ありそうですが。。。
>
> [VB.NET]ならコードが全く変わってきます。
> サンプルは[VB.NETTips一覧 他]の[ファイル入出力(8)]あたり。。。
> ついでに掲示板も別れているのでここに書くのは板違い。。。


上から空白を読み込むことで解決いたしました。
よいアドバイスをありがとうございました!!!!
VBを始めて一ヶ月くらいなので
もしかしたら6.0じゃないのかも、、、
前に誰かにこれは6.0って言われたような気がしたので
勘違いしていたのかもしれません。

自分にとっては勘違いでも
掲示板の方には迷惑をかけ
もしかしたら荒らし行為にあたるような気もします。。。
本当にすみませんでした。
ここの掲示板に書くには事前の知識が必要みたいなので
もうすこし勉強したあとで
みなさんとのコミュニケーションの場として
利用したいと思います。
なので見に来ることはあっても書き込むことは自粛します。

最後に、本当にありがとうございました。