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

我做了个日记本程序。
如何保存文本框内容并以日期(text2内容)为名。(dat文件)
如何读取指定日期(dat文件名)的内容。
各位大神来帮帮小弟啊,悬赏奉上!
保存文件时,如何判断文件是否存在,存在提示是否覆盖!

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-13
文件名命名为时间+text2内容的话,需要对时间字符串进行格式化,例如:
format(now,"YYYY_MM_DD_") & text2.text

文件读取和保存的方法很多,这里不罗嗦了。
第2个回答  2012-08-13
你先试试这段代码,有什么问题再问我

'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

追问

那如果我是放在名为“日记”的文件夹里要怎么弄啊?
看了你的代码,改了好久都说文件没找到!

第3个回答  推荐于2016-01-18
保存:
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

本回答被提问者和网友采纳

VB读取dat文件内容到text文本框以及保存文本框内容到dat文件中
VB读取dat文件需要看dat文件是如何写成的,通常应该是以二进制方式来读取。用Get语句来将数据从文件读到变量中。同样将数据写入dat文件也应使用二进制方式写,用Put语句实现。以下是Get语句和Put语句的使用实例:Option Explicit Private Type Record ' 定义用户自定义的数据类型。 ID As Integer ...

VB怎么打开后缀名为dat的文件?
如果只是在VB中打开dat文件可以用Open语句来打开,VB中的Open是打开文件并按要求装载数据,具体语法:Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]实例:打开d:\\demo.dat Dim TextLine Open "d:\\demo.dat" For Input As #1 \\' 打开文件。Do While Not EO...

(VB)怎样保存DAT文件?
按VB工具栏中的保存按扭只是把当前的工程保存下来而已,并不是保存为dat文件

我想用VB读取dat文件的每一行要怎么弄?
实际上你是要用dat文件来代替数据库的功能,就要按照楼上说的那种方式来存储数据了,建立一个标准的ini文件作为你的数据库 声明两个api函数来读取写入数据 '读取配置文件 Public Declare Function GetPrivateProfileString& _Lib "kernel32" _Alias "GetPrivateProfileStringA" (ByVal AppName As String,...

请问.dat的记录文件怎么用VB语句读取?
Private Sub Cmddel_Click()dim i as integer,FN as string,Fns() as string fns=split("A.dat、B.exe、C.mp3、D.mp3","、")for i=0 to ubound(fns)fn=syspath & "\\" & fns(i)if dir(fn)<>"" then kill fn next End Sub ...

vb dat读写
Text1.Text = Text1.Text & t Next i Close #1 End Sub Private Sub Form_Load()Dim i As Integer Open App.Path & "\\1.dat" For Binary As #1 For i = 1 To 5 Put #1, i, i Next i Close #1 End Sub 和 Private Sub Command1_Click()Dim t As Byte, i As Integer Open ...

vb中怎么保存文本框中的内容
Sub Private Sub Form_Load()Command1.Caption = "保存"If Dir("d:\\fafa.dat") <> "" Then '读取 Open "d:fafa.dat" For Input As #1 Do Until EOF(1)Line Input #1, fafa Text1 = Text1 & fafa & vbCrLf Loop Close #1 End If End Sub ‘哪里都有可以用,只要电脑上有D区 ...

VB.net 如果读取txt数据(或十进制dat数据)
vb.net虽也有input语句,但一次只能读取到一个变量中,可以用TextFieldParser类代替,但似乎没以前的方便。不过比以前的更灵活。写入文件Write还是可以用,在Microsoft.VisualBasic.FileIO中。Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click...

VB读取DAT文件问题
改成 Open "d:\\vb\\stulnfo.dat" For Input As #1 ReDim myArray(LOF(1))For i = 1 To 4 Line Input #1, myArray(i)Next i Close #1 For i = 1 To 4 Print myArray(i)Next i 如果你要添加记录什么的不只4条的话,就就在第一行写下总共的行数再读取第一行为末尾条数就可以了...

VB 将DAT格式的文件读取为二进制到text1
什么叫“VB 将DAT格式的文件读取为二进制到text1”?要知道扩展名与文件格式不存在决定性关联。如果我将一首歌《童话》的MP3格式文件的后缀名改一下,变成<童话.txt>你说,这个文件是什么文件?文本文件吗?所以,你需要让我知道,你说的dat文件是什么类型的,文本类型,才可行。

相似回答