コモンダイアログの保存について

解決


ゴン  2003-10-30 10:48:03  No: 109576  IP: [192.*.*.*]

コモンダイアログの名前をつけて保存を使って、
テキストファイルの新規作成をしたいのですが、
""の部分がよくわかりません。
誰か教えてください。  Cdlg1=コモンダイアログのオブジェクト名です。

Private Sub Command1_Click()
    Open "" For Output As #1
    Print #1, Format(Now, "general date"); Text1.Text
    Close #1
    
    Cdlg1.Filter = "テキストファイル(*.txt)|*.txt" & _
                   "すべてのファイル(*.*)|*.*"
    Cdlg1.FilterIndex = 1
    Cdlg1.ShowSave
    
End Sub

編集 削除
とろ  2003-10-30 11:36:52  No: 109577  IP: [192.*.*.*]

# この質問は CommonDialog とは全く関係ないと思いますが...

多分、現在日時と Text1.Text の内容を書き出す
ファイルのパスを指定します。

 Open "C:\Log.txt" For Output As #1
 Print #1, Format(Now, "general date"); Text1.Text
 Close #1

のようにして処理を行えば、
(Text1の中に abc と打ち込んであったとすると)
C:\Log.txt というファイルが作成されて、
中身は
2003/10/30 11:20:34abc
という感じです。

編集 削除
とろ  2003-10-30 11:39:28  No: 109578  IP: [192.*.*.*]

# 訂正

CommonDialog で指定したファイルに出力したということですね。

Private Sub Command1_Click()
    
    Cdlg1.Filter = "テキストファイル(*.txt)|*.txt" & _
                   "すべてのファイル(*.*)|*.*"
    Cdlg1.FilterIndex = 1
    Cdlg1.ShowSave
    
    Open Cdlg1.FileName For Output As #1
    Print #1, Format(Now, "general date"); Text1.Text
    Close #1
End Sub

みたいな感じにします。

編集 削除
ゴン  2003-10-30 12:02:03  No: 109579  IP: [192.*.*.*]

テキストファイルとして保存されないんですがどうしてでしょうか?
アプリケーション指定しないと開けない状態での保存になります

Private Sub Command1_Click()

    Cdlg1.Filter = "テキストファイル(*.txt)|*.txt" & _
                   "すべてのファイル(*.*)|*.*"
    Cdlg1.FilterIndex = 1
    Cdlg1.ShowSave
    
    Open Cdlg1.filename For Output As #1
    Print #1, Format(Now, "general date"); Text1.Text
    Close #1
    End
    
End Sub

編集 削除
KG  2003-10-30 12:54:08  No: 109580  IP: [192.*.*.*]

こんにちはゴンさん
保存したファイルの拡張子は.txtになってますか?

なかったらコモンタイアログでの保存ファイル名に
.txtをつけていないのでは無いでしょうか?

編集 削除
ゴン  2003-10-30 13:17:59  No: 109581  IP: [192.*.*.*]

とろさん&KGさんありがとうございました。

今、先生からexeファイル渡されて、
同じように作るように指示されたんですが、
その渡されたファイルでは、
拡張子なしで保存しても
テキストファイルになるんですが、
何か方法があるんでしょうか?

編集 削除
KG  2003-10-30 14:11:45  No: 109582  IP: [192.*.*.*]

拡張子指定なしで保存した場合に「.txt」をつけてあげればいいと思います。

Private Sub Command1_Click()
    Dim SaveFile As String
・・・中略)
    Cdlg1.ShowSave
    
    If Right$(4, Cdlg1.filename) = ".txt" Then
        SaveFile = Cdlg1.filename
    Else
        SaveFile = Cdlg1.filename & ".txt"
    End If

    Open SaveFile For Output As #1
・・・中略)
End Sub

拡張子が「.txt」の場合だけに限りますが、こんな感じでも
出来るかと思います。|@_@;

編集 削除
ゴン  2003-10-30 14:21:06  No: 109583  IP: [192.*.*.*]

ありがとうございます!!

編集 削除