Office中国论坛/Access中国论坛

标题: [分享][下载]读取和写入文本文件内容 [打印本页]

作者: fan0217    时间: 2006-3-25 04:04
标题: [分享][下载]读取和写入文本文件内容
[attach]16667[/attach]

以下是写入和读取文本文件函数:
Public Function WriteTxtFile(ByVal strPathName As String, _
            ByVal strWriteText As String, ByVal blnOption As Boolean) As Boolean
'===============================================================================
'-函数名称:     WriteTxtFile
'-功能描述:     写入文本文件内容
'-输入参数说明: 参数1: 必选 strPathName As String  文件名(含路径)
'               参数2: 必选 strWriteText As String 要写入的文本内容
'               参数3: 必选 blnOption As Boolean 写入文本的方式
'                               True:追加写入  false:覆盖写入
'-返回参数说明: 返回将内容写入文本文件是否成功
'-使用语法示例: Call WritetxtFile("落日楼头,断鸿声里,江南游子.....")
'-参考:         Wanshan在Access爱好者论坛发表的文章
'-使用注意:
'-兼容性:       2000,XP,2003
'-作者:         fan0217@163.com
'-更新日期:    2006-03-24
'===============================================================================
On Error GoTo Err_WriteTxtFile
Dim lngHandle As Long '句柄
  WriteTxtFile = False
  lngHandle = FreeFile() '取得句柄
If blnOption Then
  Open strPathName For Append As lngHandle    '打开文件 追加写入
Else
    Open strPathName For Output As lngHandle    '打开文件 覆盖写入
End If
  Print #lngHandle, strWriteText    '写入文本
  Close lngHandle    '关闭文件
  WriteTxtFile = True
  
Exit_Err_WriteTxtFile:
    Exit Function

Err_WriteTxtFile:
    WriteTxtFile = False
    MsgBox Err.Description
    Resume Exit_Err_WriteTxtFile

End Function

Public Function ReadTxtFile(ByVal strPathName As String) As String
'===============================================================================
'-函数名称:     ReadTxtFile
'-功能描述:     读取文本文件内容
'-输入参数说明: 参数1: 必选 strPathName As String  文件名(含路径)
'-返回参数说明: 返回文本文件内容
'-使用语法示例: Msgbox ReadTxtFile("c:\b.txt")
'-参考:         Wanshan在Access爱好者论坛发表的文章
'-使用注意:
'-兼容性:       2000,XP,2003
'-作者:         fan0217@163.com
'-更新日期:    2006-03-24
'===============================================================================
On Error GoTo Err_ReadTxtFile
Dim lngHandle As Long                       '文件句柄
Dim strLine As String                       '在循环中存放每行的内容
  lngHandle = FreeFile()                    '获得文件的句柄
   'For后面的参数表示以何种方式打开文件
   'Input是读取,Output是覆盖写入,Append是追加写入
  Open strPathName For Input As lngHandle
Do While Not EOF(lngHandle)                 '循环直到文件尾
  Line Input #lngHandle, strLine            '每次读取一行存放在strLine变量中
    '每次读取都把所读到的内容连接到strAll变量,
    '由于Line Input去掉了换行符,所以这里补上
  ReadTxtFile = ReadTxtFile & strLine & vbCrLf
Loop
   Close lngHandle    '关闭文件
Exit_Err_ReadTxtFile:
    Exit Function

Err_ReadTxtFile:
    MsgBox Err.Description
    Resume Exit_Err_ReadTxtFile
End Function



[此贴子已经被作者于2006-3-25 19:15:51编辑过]


作者: andymark    时间: 2006-3-25 04:20
不错
作者: 宿命的风    时间: 2006-3-25 17:24
感谢分享!
作者: george    时间: 2006-3-25 18:39
可做为帮助的新写法
作者: qlm    时间: 2006-3-25 19:54
正是我要的

又可以学下API,真是太好了.
作者: fan0217    时间: 2006-3-26 03:17
以下函数同样可以实现读取文本文件功能.

Public Function ReadTxtFileA(ByVal strPathName As String) As String
'===============================================================================
'-函数名称:     ReadTxtFileA
'-功能描述:     读取文本文件内容 功能和使用方法同ReadTxtFile函数
'-输入参数说明: 参数1: 必选 strPathName As String  文件名(含路径)
'-返回参数说明: 返回文本文件内容
'-使用语法示例: Msgbox ReadTxtFile("c:\b.txt")
'-参考:
'-使用注意:
'-兼容性:       2000,XP,2003
'-作者:
'-更新日期:
'===============================================================================
On Error GoTo Err_ReadTxtFile
Dim strFile As String
Open strPathName For Input As #1
    ReadTxtFile = ""
    strFile = ""
Do While Not EOF(1)
    Line Input #1, strFile
    If ReadTxtFile = "" Then
      ReadTxtFile = strFile
    Else
      ReadTxtFile = ReadTxtFile & vbCrLf & strFile
    End If
Loop
  Close #1
  
Exit_Err_ReadTxtFile:
    Exit Function

Err_ReadTxtFile:
    MsgBox Err.Description
    Resume Exit_Err_ReadTxtFile

End Function

作者: jd3222308    时间: 2006-3-27 04:44
你好,你给我的示例文件没有密码啊,请回复可以吗?
作者: wu8313    时间: 2006-3-27 05:20
把 文本 再写入表中,不就是更好 了吗?
作者: fan0217    时间: 2006-3-27 05:25
那很容易实现的,所以没有加入该功能.
作者: wu8313    时间: 2006-3-28 04:33
文本文件的 多行和多列 分别写入 到表的多行和多列 ,我感觉还是有一些难度的。

有空的 时候我会考虑来尝试完成。










作者: fan0217    时间: 2006-3-28 05:13
读取文本文件是一行一行的读取的,在读取一行就写一行不就解决了吗.

[此贴子已经被作者于2006-3-27 21:13:57编辑过]


作者: wu8313    时间: 2006-3-28 05:15
文本中如果有多列的话,要麻烦一些的。
作者: fan0217    时间: 2006-3-28 05:17
读取行的同时进行拆分,然后写入.
作者: 搞不定    时间: 2006-4-12 05:22
呵呵,不错的代码
作者: mchgo    时间: 2006-6-27 05:43

作者: mchgo    时间: 2006-6-27 05:44
多发表这样的知识嘛!
作者: mchgo    时间: 2006-6-27 05:46
多顶!
作者: xlonger    时间: 2006-7-23 05:02
用这个写入函数后,新的文本文件最后有个空行,如何取消?
作者: Sooloom    时间: 2007-5-31 17:31
学习学习,很好
作者: shaoyong99    时间: 2007-6-22 06:31
支持一下
作者: sysyj1030    时间: 2007-9-25 13:35
学习学习学习学习学习学习学习
作者: wang_jeffson    时间: 2008-4-8 23:35
[:22]
作者: 13912668356    时间: 2008-4-11 09:00
q sdsfjdfdsfjdsifjsdjffjsddjfdfdsjfjsjj
作者: yihesmxx    时间: 2011-5-17 11:00
学习学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3