はじめまして。
テキストエディタを作ろうとしていますが、
「名前を付けて保存」のようなことは出来たのですが
「上書き保存」の方法が分かりません。
どなたかよろしくお願いします。
「開く」、「名前をつけて保存」でファイルの名前を記録しておく
「新規作成」が押されたときににファイルの名前を""にしておく
「上書き保存」が押されたときに
ファイルの名前が""なら「名前をつけて保存」をCall
ファイルの名前が""でないならそのファイルの名前で保存すればいいと思います。
コード書いときます
標準モジュールに
Public FileName As String
Formに
'「新規作成ボタン」
New_File_Click
FileName = ""
End Sub
'「開く」ボタン
Open_File_Click
With CommonDialog1
.DialogTitle = "開く"
.Filter = "テキスト文章 (*.txt;*.htm;*.html)|*.txt;*.htm;*.html|すべてのファイル(*.*)|*.*"
.ShowOpen
FileName = .FileName
'--------ここからOpenメソッド-------
End Sub
'「名前をつけて保存」ボタン
Save_File_Click
With CommonDialog1
.DialogTitle = "名前を付けて保存"
.Filter = "テキスト文章 (*.htm)|*.htm|すべてのファイル(*.*)|*.*"
.ShowSave
Fname = .FileName
'--------ここからOpenメソッド-------
End With
End Sub
'「上書き保存」ボタン
Uagaki_Save_Click
If FileName = "" Then Call Save_File_Click
If FileName <> "" Then
Open FileName For Output As #
Print メソッド
Close #
End Sub
中にFnameになってるものがありますがFileNameの間違えです。
「開く」にEnd With書き忘れました。すみません。
あと変数名がFileNameだとできないかも知れないので変数名を変えてください。
すみません
私もテキストエディタを作っているのですが
上のコードでやってみたところ、エラーが出てダメでした。
もしかして.NET2003だからなのでしょうか?
度々スミマセン。
上の書き込みに追加なんですが
新規作成とありますが、
私の作っているもには新規作成を付けずに
そのままリッチテキストを付けています。
>もしかして.NET2003だからなのでしょうか?
Open FileName For Output As #
のソースが記述されているって時点で.NETではないと思います。
VB6ではないでしょうか?
私もテキストエディタを作った事があります。
そのときは「名前をつけて保存」を実行したときに保存したパスを取っておいて、
上書き保存するときにそのパスを使って保存させていました。
「開く」も実行されたときにパスを取っておくようにしたほうが良いです。
んでもって、
「名前をつけて保存」や「開く」を実行されていない場合、
上書き保存を選択できないようにしたほうが親切ではないかと思います。
ありがとうございます
よく考えて書いてみたら出来ました(^。^
あ、解決です☆
ツイート | ![]() |