Ms access 如何在Access中读取超过255个字符/行且包含控制字符的TXT文件?

Ms access 如何在Access中读取超过255个字符/行且包含控制字符的TXT文件?,ms-access,text,vba,Ms Access,Text,Vba,我正在运行Access 2010。我需要将TXT文件读入字符串。每行的长度可以是40到320个字符,以CR结尾。最大的问题是,不同行的TXT文件包含逗号(,)和引号(“),作为数据的一部分 这样做有什么诀窍吗?即使获取每个字符并测试它是否为CR…要完成此任务,您也需要编写自己的导入代码,直接从文件中读取。Microsoft Access导入功能无法很好地处理这样的文件,因为您要分析cod中的每一行e、 最好自己去读 您可以采取很多方法,所有方法都涉及文件句柄和打开文件。但是,最好的方法是使用一个

我正在运行Access 2010。我需要将TXT文件读入字符串。每行的长度可以是40到320个字符,以CR结尾。最大的问题是,不同行的TXT文件包含逗号(,)和引号(“),作为数据的一部分


这样做有什么诀窍吗?即使获取每个字符并测试它是否为CR…

要完成此任务,您也需要编写自己的导入代码,直接从文件中读取。Microsoft Access导入功能无法很好地处理这样的文件,因为您要分析cod中的每一行e、 最好自己去读

您可以采取很多方法,所有方法都涉及文件句柄和打开文件。但是,最好的方法是使用一个类来为您完成所有脏活

一个这样的类是
LargeTextFile
类,可以在任何一本Microsoft Access开发者手册(第1卷)中找到,该手册针对Access 97、2000、2002或2003,由Getz、Litwin和Gilbert(Sybex)编写,如果您可以访问其中一本的话

另一个选项是
clsReadTextFile
类,可在网站上免费获得:

使用
clsReadTextFile
您可以使用类似以下代码逐行处理您的文件:

Dim file As New clsReadTextFile
Dim line As String

file.FileName = "C:\MyFile.txt"

file.cfOpenFile

Do While Not file.EndOfFile
    file.csGetALine
    line = file.Text
    If InStr(line, "MySearchText") Then
        'Do something
    End If
Loop
file.cfCloseFile

字符串变量将包含刚刚读取的行的文本,您可以编写代码来解析它,并对其进行适当的处理。然后循环将继续读取下一行。这将允许您在代码中手动处理文件的每一行。

从您的帖子中不清楚是否为y您可以(或已经尝试)使用产品中提供的工具执行此任务。Access 2010提供了指向.txt文件的链接以及向表中追加.txt文件的功能。这些是功能区“外部”选项卡中的标准功能

大文本(以前称为备忘录)字段类型允许约4K个字符。不确定是否要尝试将所有txt数据引入单个字段中-如果是,则此限制很重要


如果文本文档的CRs表示新的记录/数据行,而不是整个文档的连续字符串,并且如果所有数据行中都有一致的结构,则导入向导可以使用字符计数或符号(即逗号,如果存在)-作为将每一行数据分离/隔离到表中每一行的单独字段中的方法。

只是澄清一下,您指的是回车(CR)吗char?请显示您正在使用的代码,并指出哪一行出现了错误,以及该错误是什么。如果没有错误,请显示说明问题的输入行和表行。我还没有编写任何代码。我将遇到的问题是导入一个文本行,该行如下所示:1234Smith John 123 AnystreetYourTown,ST 12344-1234“干杯”无“或,是除名器,它们都是有效的输入字符。“干杯”所在的区域可能有,也可能没有“在线上。当我输入行时,我将能够解析它,并知道如何处理每组字段。是的,CR是回车符。引号和撇号可能只有在SQL语句中使用字符串时才会出现问题,但这是可以解决的。无论如何,逗号都不应该是问题。为什么要读文件?导入向导不充分?