VB读取dat文件内容到text文本框以及保存文本框内容到dat文件中

我做了个日记本程序。如何保存文本框内容并以日期(text2内容)为名。(dat文件)如何读取指定日期(dat文件名)的内容。各位大神来帮帮小弟啊,悬赏奉上!保存文件时,如... 我做了个日记本程序。
如何保存文本框内容并以日期(text2内容)为名。(dat文件)
如何读取指定日期(dat文件名)的内容。
各位大神来帮帮小弟啊,悬赏奉上!
保存文件时,如何判断文件是否存在,存在提示是否覆盖!
展开
 我来答
zdingyun
推荐于2016-11-24 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48172
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

VB读取dat文件需要看dat文件是如何写成的,通常应该是以二进制方式来读取。用Get语句来将数据从文件读到变量中。

同样将数据写入dat文件也应使用二进制方式写,用Put语句实现。

以下是Get语句和Put语句的使用实例:

Option Explicit
    Private Type Record   ' 定义用户自定义的数据类型。
        ID As Integer
        Name As String * 20
    End Type
'读取数据
Private Sub Command1_Click()
    Dim MyRecord As Record, Position   ' 声明变量。
    ' 为随机访问打开样本文件。
    Open "C:\TESTFILE.dat" For Random As #1 Len = Len(MyRecord)
        ' 使用 Get 语句来读样本文件。
        Position = 5   ' 定义记录号。
        Get #1, Position, MyRecord   ' 读第三个记录。
    Close #1
    Text1.Text = MyRecord.ID
    Text2.Text = MyRecord.Name
End Sub
'写入数据
Private Sub Command2_Click()
    Dim MyRecord As Record, RecordNumber   ' 声明变量。
    ' 以随机访问方式打开文件。
    Open "C:\TESTFILE.dat" For Random As #1 Len = Len(MyRecord)
        For RecordNumber = 1 To 5   ' 循环五次。
            MyRecord.ID = RecordNumber   ' 定义 ID。
            MyRecord.Name = "My Name" & RecordNumber   ' 建立字符串。
            Put #1, RecordNumber, MyRecord   ' 将记录写入文件中。
        Next RecordNumber
    Close #1
End Sub

扩展名是DAT的文件并不是一种标准文件。许多软件都使用这个扩展名,但文件含义不同。而许多数据分析软件也用这个扩展名保存数据。所以这要看具体的软件情况来定。DAT文件,可以按照扩展名来看就是DATA的意思,即数据文件,这类文件并没有进行绝对化的定义,例如VCD光盘中的DAT文件就可以用一般的视频播放器打开,而QQ的DAT文件中则存储了用户信息,是无法使用常规方式打开的,只有QQ程序可以访问。还有一些其他程序都有自己对DAT文件的定义,要通过其特殊的程序来打开与之相关联的DAT文件。

参考:http://baike.baidu.com/link?url=bOpq_J07IEkCS_CsW0FG_hoN_0sQAa0w5FVdlxwavqxJDxFUp0g5r6-g3EVzcS_Gu7bGH-hkFdoVfaTVxetjNK

limzerg
2012-08-13 · TA获得超过811个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:138万
展开全部
文件名命名为时间+text2内容的话,需要对时间字符串进行格式化,例如:
format(now,"YYYY_MM_DD_") & text2.text

文件读取和保存的方法很多,这里不罗嗦了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四十五度的主人
2012-08-13 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:136
采纳率:100%
帮助的人:136万
展开全部
你先试试这段代码,有什么问题再问我

'command1是保存文本的,command2是读取文本的

Option Explicit
Private Sub Command1_Click()

Dim a As String, b As String, c As String
Dim filePath As String
Dim filePath1 As String

filePath = "D:\temp" '这里写入你的文件所在的文件夹的名字

If Text2.Text = "" Then
MsgBox "请输入文件名"
Exit Sub
End If
a = Text2.Text

filePath1 = filePath + "\" + a + ".dat"
'这里是你的.dat文件的整体路径,比如"D:\temp\001.dat"

'往这个文件里面写入内容
Open filePath1 For Input As #1
Print #1, a
Close #1

End Sub

Private Sub Command2_Click()
Dim a As String, b As String, c As String
Dim filePath As String
Dim filePath1 As String

filePath = "D:\temp"
If Text2.Text = "" Then
MsgBox "请输入文件名"
Exit Sub
End If
a = Text2.Text
filePath1 = filePath + "\" + a + ".dat"

'先检测文件是否存在,不存在则给出提示退出命令

If Dir(filePath1) = "" Then
MsgBox "文件未找到,请检查文件路径及文件名是否正确"
Exit Sub
End If

'从这里开始读入文件内容
c = "" '先清空变量
Open filePath1 For Input As #1
Do While Not EOF(1)
Line Input #1, b '读每一行
c = c + b '每一行的结果添加到变量c里面
Loop
Close #1
text3.Text = c

End Sub
更多追问追答
追问


不知道怎么用你代码呐~~~~~~~

你看我这个要怎么做:

我要在text2里面输入日期,在text1里面输入文本。

单击保存按钮直接保存一个以日期为名以text1为内容的dat文件到自己文件夹的“日记”文件夹中,(不是指定保存到哪个盘而是运行程序exe所在的文件夹)

单击读取,便读取文件夹“日记”中对应text3名称的dat文件的名称到text2,内容到text1。

追答

'command1是读取文本的,command2是保存文本的
'你直接把你的代码程序清空,然后把这段代码复制到你的程序里面就行
 
Option Explicit
Private Sub Command1_Click()
   
    Dim a As String, b As String, c As String
    Dim filePath As String
    Dim filePath1 As String
   
    Text1.Text = ""
    filePath = App.Path         '默认保存在程序所在位置
   
    '要求用户输入文件名
    If Text2.Text = "" Then
        MsgBox "请输入日期"
        Exit Sub
    End If
   
    a = Text3.Text
    filePath1 = filePath + "\" + a + ".dat"
   
    '先检测文件是否存在,不存在则给出提示退出命令
    If Dir(filePath1) = "" Then
        MsgBox "文件未找到,请检查文件路径及文件名是否正确"
        Exit Sub
    End If
   
    '从这里开始读入文件内容
    c = ""                          '先清空变量
    Open filePath1 For Input As #1
        Do While Not EOF(1)
            Line Input #1, b        '读每一行
            c = c + b               '每一行的结果添加到变量c里面
        Loop
    Close #1
    Text1.Text = c
   
End Sub
 
Private Sub Command2_Click()
   
    Dim a As String, b As String, c As String
    Dim filePath As String
    Dim filePath1 As String
   
    filePath = App.Path        '这里写入你的文件所在的文件夹的名字
   
    If Text2.Text = "" Then
        MsgBox "请输入文件名"
        Exit Sub
    End If
   
    a = Text2.Text
    b = Text1.Text
   
    filePath1 = filePath + "\" + a + ".dat"
   
    '往这个文件里面写入内容
    Open filePath1 For Output As #1
    Print #1, b
    Close #1
   
End Sub

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网海1书生
科技发烧友

推荐于2016-01-18 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26226

向TA提问 私信TA
展开全部
保存:
open app.path & "\" & text2.text & ".dat" for output as #1
print #1,text1.text
close #1

读取:
open app.path & "\" & text2.text & ".dat" for binary as #1
text1.text=input(lof(1),#1)
close #1
追问

嗯,就是这个效果了,麻烦兄弟帮我看下这个要怎么弄,我刚弄了好久也没搞定



我要在text2里面输入日期,在text1里面输入文本。

单击保存按钮直接保存一个以日期为名以text1为内容的dat文件到自己文件夹的“日记”文件夹中,(不是指定保存到哪个盘而是运行程序exe所在的文件夹)

单击读取,便读取文件夹“日记”中对应text3名称的dat文件的名称到text2,内容到text1。

追答
Private Sub Command1_Click()  '保存
If Dir(App.Path & "\日记\" & Text2.Text & ".dat") "" Then
If MsgBox("文件已存在,是否覆盖?", vbYesNo) = vbYes Then
Kill App.Path & "\日记\" & Text2.Text & ".dat"
Else
Exit Sub
End If
End If
Open App.Path & "\日记\" & Text2.Text & ".dat" For Output As #1
Print #1, Text1.Text
Close #1
MsgBox "文件保存完毕!"
End Sub

Private Sub Command2_Click() '读取
If Dir(App.Path & "\日记\" & Text3.Text & ".dat") = "" Then
MsgBox "指定的文件未找到!"
Exit Sub
End If
Text2.Text = Text3.Text
Open App.Path & "\日记\" & Text3.Text & ".dat" For Binary As #1
Text1.Text = Input(LOF(1), #1)
Close #1
MsgBox "文件读取完毕!"
End Sub
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式