| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1007 人关注过本帖
标题:(求助)记事本的新建
只看楼主 加入收藏
CLT
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2010-4-1
结帖率:100%
收藏
 问题点数:0 回复次数:7 
(求助)记事本的新建
Private Sub NewFile_Click()
    Dim FileName$
    If RtxtContent.Text = "" Then
        RtxtContent.Text = ""
        FileName = "无标题 - 记事本"
        Me.Caption = FileName
    ElseIf RtxtContent.Text <> "" Then
        i = MsgBox("文件  " & Me.Caption & "  的文字已经改变。想保存文件吗?", 3 + 48 + 0, 记事本)
        If i = vbYes Then
            On Error GoTo Errhandler
            CommonDialog1.FileName = "*.txt"
            CommonDialog1.Filter = "文本文档(*.txt)|*.txt|所有文件|*.*"
            CommonDialog1.FilterIndex = 1
            CommonDialog1.ShowSave
            If CommonDialog1.FileName <> "" Then
                Open CommonDialog1.FileName For Output As #1
                Print #1, RtxtContent.Text
                Close #1
                RtxtContent.Text = ""
            End If
Errhandler:
            Exit Sub
        ElseIf i = vbNo Then
            Close
            RtxtContent.Text = ""
        End If
    End If
End Sub

谁能帮我改改错?
就是我弹出保存对话框后,如果我要保存的文件名是已有文件名,会再弹出提示是否覆盖(这里我做不出了,谁能帮我完成?谢谢了。我写得有些复杂。)。
搜索更多相关主题的帖子: 记事本 
2010-04-03 10:45
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:0 
Option Explicit

Private Sub Command1_Click()
    Dim path As String
    path = CStr(Text1)
    If Exist(path) Then
        MsgBox "存在"
    Else
        MsgBox "不存在"
    End If
    Text1.SetFocus
End Sub

Private Function Exist(fileName As String) As Boolean
    On Error Resume Next
    Open fileName For Input As #1
        DoEvents
    Close #1
    If Err Then
        Exist = False
        Exit Function
    End If
    Exist = True
End Function
把exist函数运用进去就行了
2010-04-07 22:02
radley
Rank: 2
等 级:论坛游民
帖 子:9
专家分:59
注 册:2009-11-7
收藏
得分:0 
楼上的太复杂了,直接调用FileSystemObject
dim fso as filesystemobject

if fso.fileexist(filename) then
    msgbox "文件已存在"
end if

[url=http://uu3.]点这里进入VB精英论坛[/url]
2010-04-08 09:06
CLT
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2010-4-1
收藏
得分:0 
回复 2楼 xiaomarn
我想要用Dir去检查Filename
2010-04-10 11:01
CLT
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2010-4-1
收藏
得分:0 
回复 3楼 radley
我想要先写复杂后再简化的。

我想要用Dir去检查Filename的。想做跟Windows里面的记事本的新建一样。
2010-04-10 11:02
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
新建,打开,保存,另存为,退出,退出时保存

程序代码:
Option Explicit

Dim 是否被修改 As Boolean           '是否被修改
Dim Filename As String              '路径 + 文件名
Dim filename2 As String             '仅文件名

Private Sub Form_Load()
    Dim j As String
    j = Command                 '命令行参数
    If j <> "" Then             '如果参数不为空
        If Dir(j) <> "" Then    '如果文件存在
            Call 打开文件(j)    '打开文件,否则什么都不做
        End If
    End If
   
End Sub

Private Sub Form_Resize()
On Error Resume Next
    Text1.Move 120, 120, Me.ScaleWidth - 240, Me.ScaleHeight - 240
End Sub

Private Sub Form_Unload(Cancel As Integer)
    '退出
    Dim i As Long
    Dim j As String
   
    If 是否被修改 Then          '被修改
        i = MsgBox("文件被修改,是否保存?", vbYesNoCancel)
        Select Case i
            Case vbNo       '
                            '什么也不做
            Case vbCancel           '取消
                Cancel = 1
            Case vbYes              '要保存
                If Filename <> "" Then
                    Call 保存文件
                Else
                    CommonDialog1.Filename = "*.txt"
                    CommonDialog1.Filter = "文本文档(*.txt)|*.txt|所有文件|*.*"
                    CommonDialog1.FilterIndex = 1
                    CommonDialog1.ShowSave
                    If CommonDialog1.Filename = "*.txt" Then        '按下的取消
                        Cancel = 1
                    Else
                        If Not 保存文件(CommonDialog1.Filename) Then        '保存文件时被取消
                            Cancel = 1
                        End If
                    End If
                End If
        End Select
    End If

End Sub

Private Sub MenuFileExit_Click()
    Unload Me
End Sub

Private Sub MenuFileNew_Click()
    '新建
    Dim i As Long
    Dim j As String
   
    If 是否被修改 Then          '被修改
        i = MsgBox("文件被修改,是否保存?", vbYesNoCancel)
        Select Case i
            Case vbNo       '
                Call 新建
            Case vbCancel           '取消
                Exit Sub
            Case vbYes              '要保存
                If Filename <> "" Then
                    Call 保存文件
                Else
                    CommonDialog1.Filename = "*.txt"
                    CommonDialog1.Filter = "文本文档(*.txt)|*.txt|所有文件|*.*"
                    CommonDialog1.FilterIndex = 1
                    CommonDialog1.ShowSave
                    If CommonDialog1.Filename = "*.txt" Then        '按下的取消
                        Exit Sub
                    Else
                        If 保存文件(CommonDialog1.Filename) Then
                            Call 新建
                        End If
                    End If
                End If
        End Select
    Else
        Call 新建
    End If
           
End Sub

Private Sub MenuFileOpen_Click()
    call MenuFileNew_Click            '先调用新建
    '打开文件
    CommonDialog1.Filename = "*.txt"
    CommonDialog1.Filter = "文本文档(*.txt)|*.txt|所有文件|*.*"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.ShowOpen
    If CommonDialog1.Filename <> "*.txt" Then        '按下的取消
        Call 打开文件(CommonDialog1.Filename)
    End If
   
End Sub

Private Sub MenuFileSave_Click()
    '保存
    If Filename = "" Then               '如果无文件名
        Call MenuFileSaveA_Click        '等同于另存为
    Else
        Call 保存文件("", True)         '否则直接保存
    End If
End Sub

Private Sub MenuFileSaveA_Click()
'另存为
   
    CommonDialog1.Filename = "*.txt"
    CommonDialog1.Filter = "文本文档(*.txt)|*.txt|所有文件|*.*"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.ShowSave
   
    If CommonDialog1.Filename = "*.txt" Then        '按下的取消
        Exit Sub
    Else
        Call 保存文件(CommonDialog1.Filename)
    End If

End Sub

Private Sub Text1_Change()
    Me.Caption = filename2 & " *"
    是否被修改 = True
End Sub

Private Function 保存文件(Optional cs As String, Optional cs2 As Boolean = False) As Boolean       '保存文件,参数为文件名,参数2表示是否直接覆盖
'返回是否保存,真表示保存了,假表示重名,用户取消了
Dim fr As Long
Dim i As Long, j As String
fr = FreeFile

If cs = "" And Filename = "" Then           '如果没有文件名
    保存文件 = False                        '保存失败
    Exit Function                           '退出函数
End If

If cs <> "" Then
    j = Filename
    Filename = cs
End If
   
    If Dir(Filename) <> "" And Not cs2 Then
        i = MsgBox(Filename & "文件存在,是否覆盖!", vbYesNo)
        If i = vbNo Then
            保存文件 = False
            Filename = j            '还原文件名
            Exit Function
        End If
    End If

    Open Filename For Output Access Write As fr
        Print #fr, Text1.Text
    Close fr
    是否被修改 = False
    保存文件 = True
   
    filename2 = Mid(Filename, InStrRev(Filename, "\") + 1)
    Me.Caption = filename2

End Function

Private Sub 打开文件(Optional cs As String)         '打开文件,参数为文件名
    Dim fr As Long
    fr = FreeFile
   
If cs = "" And Filename = "" Then           '如果没有文件名
    Call 新建                               '新建了事
Else                                        '否则打开文件
    If cs <> "" Then
        Filename = cs
    End If
       
    If Dir(Filename) = "" Then
        MsgBox Filename & " 文件不存在!"
        Exit Sub
    End If
   
    Text1.Text = ""
    Dim j As String
    Open Filename For Input Access Read As fr
    Do While Not EOF(fr)
        Line Input #fr, j
        Text1.Text = Text1.Text & vbCrLf & j
    Loop
    Close #fr
    是否被修改 = False
   
    filename2 = Mid(Filename, InStrRev(Filename, "\") + 1)
    Me.Caption = filename2

End If
End Sub

Private Sub 新建()
    Text1.Text = ""
    Filename = ""
    filename2 = ""
    是否被修改 = False
    Me.Caption = ""
End Sub


你慢慢看吧.
工程很简单,我就不上传了.




[ 本帖最后由 风吹过b 于 2010-4-10 22:27 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2010-04-10 22:24
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
打开那里还有一点BUG, 不愿改了,需要按照新建那个模式全部重写过.不愿写了.

授人于鱼,不如授人于渔
早已停用QQ了
2010-04-10 22:28
CLT
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2010-4-1
收藏
得分:0 
回复 7楼 风吹过b
谢咯!可是时间过了,所以不能给版主的分数,不好意思了!
2010-04-11 08:42
快速回复:(求助)记事本的新建
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020558 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved