添加 ASCII 或文本文件表
在 ArcGIS 中,可以直接访问分隔文本文件中的数据并将这些文件用作表。ArcMap 中的添加数据 对话框和 ArcCatalog 会列出扩展名为 .txt、.asc、.csv 或 .tab 的文件,并将其指定为文本文件类型。
默认情况下,扩展名为 .txt、.asc 或 .csv 的文件会被解释为以逗号分隔的文件,而扩展名为 .tab 的文件会被解释为以制表符分隔的文件。具有这些扩展名之一的任意文件(即使此文件不包含表格数据)都将被解释为一个文本文件表。如果您试图显示一个不含表格数据的文本文件,则软件要么会产生一个错误,要么会尝试以表的形式显示数据。要避免发生这种问题,请为分隔文本文件指定 .csv 或 .tab 扩展名。这有助于对具有分隔数据的文本文件与无格式文本文件进行区分。
文本文件的第一行可以包含列标题。后续各行可以包含坐标和属性。请记住要用逗号或制表符来区分各个列。以下是逗号分隔文本文件的一个示例:
x,y,ID,color 8.6,5.6,001,blue 99.3,77.0,002,blue and red 8.01,44.3,003,orange
此示例可以在 ArcCatalog 中进行预览,也可以在 ArcMap 中将其作为数据进行添加,如下图所示:
自行设置文本分隔符
ArcGIS 对文本文件使用 Microsoft OLE DB Provider for ODBC(开放式数据库通信)驱动程序和 Microsoft ODBC Text Driver 来访问文本文件中的表格数据。驱动程序会在一个名为 schema.ini 的文件中存储每个文本文件的数据描述(方案)信息,以便可以正确地访问数据。此文件只引用位于它所在目录中的文本数据文件。
对于您对其具有写入权限的包含文本文件的每个目录,一旦使用 ArcCatalog 或 ArcMap 浏览或打开之后,其中就会包含一个 schema.ini 文件。还会针对目录中的每个文本文件向此文件中添加一个定义分隔符的条目。当数据导出到文本文件时,也会将信息写入 schema.ini 文件。如果目录中尚不存在 schema.ini 文件,则会自动创建。
ArcGIS 使用文件扩展名来确定如何为每个文本文件设置分隔符。扩展名为 .txt、.asc 或 .csv 的文件将设置为逗号分隔文件,而扩展名为 .tab 的文件将设置为制表符分隔文件。以下是对于包含 demog_tab.tab、demog.txt、demog.csv 和 demog.asc 文件的目录,schema.ini 文件中将会出现的内容的示例:
[demog_tab.tab] Format=TabDelimited [demog.txt] Format=CSVDelimited [demog.csv] Format=CSVDelimited [demog.asc] Format=CSVDelimited
如果文本文件的扩展名为 .txt、.csv 或 .asc,但文件中使用的分隔符不是逗号,则默认情况下将无法正确地对数据进行解释。可以修改 schema.ini 文件来指定正确的分隔符。在 schema.ini 文件中设置之后,ArcMap 和 ArcCatalog 即可正确解释数据。下面示例将说明如何进行设置。
对于使用制表符分隔符的名为 city_demog.txt 的文件,可进行以下设置。也可以选择重命名此文件,将扩展名改为 .tab:
[city_demog.txt] Format=TabDelimited
对于使用分号分隔符的名为 customers.txt 的文件,添加以下内容:
[customers.txt] Format=Delimited(;)
即使不能在相应的目录(例如,只读目录)中创建 schema.ini 文件,您仍然能够访问逗号分隔的文本文件。这是因为当 schema.ini 文件不存在时,默认情况下,ODBC 文本文件驱动程序会尝试将文本文件以逗号分隔形式进行解释。但是,这意味着您将无法正确访问只读目录中的制表符分隔数据。如果遇到这种情况,可以手动创建 schema.ini 文件,并针对相应的文件将格式设置为 TabDelimited。
字段名称
字段名称中不支持某些字符,如连字符(例如,x-coord)、空格和括号。在使用分隔文本文件之前,应对其中包含的字段名称进行编辑以删除这类字符。例如,可以使用下划线字符代替字段名称中的连字符。
导出文本文件
将表格数据导出到文本文件时,将始终在输出文件中使用逗号分隔符。此外,还会向 schema.ini 文件添加信息以确保字段导出到正确的数据类型并将格式设置为以逗号分隔。如果在导出到文本文件表后查看 schema.ini 文件,您会看到常规信息以及输出文件中每个字段的数据类型和字段宽度。下面是名为 Export_Output.txt 的文件的典型示例:
[Export_Output.txt] ColNameHeader=True CharacterSet=1252 Format=CSVDelimited Col1=OID Integer Col2=NAME Char Width=25
有关 schema.ini 文件的详细信息,请在 Microsoft MSDN 网页上搜索 schema.ini。