使用D3 pick将表写入文件

使用D3 pick将表写入文件,pick,Pick,在D3中,假设我有一个名为foo的文件,我想将该文件的内容写入/var/tmp/bar。文档让我相信,通过将D指针更改为Q指针,D3应该可以将文件写入文件系统,但我不知道如何实现这一点。您至少可以通过几种方法实现这一点 1) 您不想将d指针更改为q指针,只想创建一个q指针。换句话说,访问主机文件系统不需要首先使用d指针。因此,称为“bar”的q指针将如下所示: Q /var/tmp/bar 有了这些,您可以简单地: copy foo to: (bar 请注意,在本例中,“bar”是主机OS文

在D3中,假设我有一个名为foo的文件,我想将该文件的内容写入/var/tmp/bar。文档让我相信,通过将D指针更改为Q指针,D3应该可以将文件写入文件系统,但我不知道如何实现这一点。

您至少可以通过几种方法实现这一点

1) 您不想将d指针更改为q指针,只想创建一个q指针。换句话说,访问主机文件系统不需要首先使用d指针。因此,称为“bar”的q指针将如下所示:

Q
/var/tmp/bar
有了这些,您可以简单地:

copy foo
to: (bar
请注意,在本例中,“bar”是主机OS文件夹/目录,而不是文件。D3“文件”是一个具有多条记录的表。转换为包含多个文件的主机OS目录

复制命令上的选项用于在复制记录时抑制项目ID(键)的显示(请参见文档)

2) 您甚至不需要q指针:

copy foo
to: (/var/tmp/bar
3) 类似地,在代码中,您可以使用q指针,也可以使用直接路径:

open 'bar' to f.bar1 ...
open '/var/tmp/bar' to f.bar2 ...
==

路径语法使用一种称为OSFI的机制(参见文档)。使用此语法可以指定驱动程序。名为“unix:”的默认驱动程序将属性标记转换为*nix EOL,后者是换行x0A。如果您在Windows上,默认值为“dos:,它将属性标记转换为CRLF x0D0A。可以通过在路径前面加上驱动程序来强制非默认值。因此,要在Unix/Linux中创建DOS格式文件,请使用DOS:/var/tmp/bar。默认驱动程序还可以在制表符和4个空格之间转换(请参见文档)。不会转换值和子值,但可以创建一个新的驱动程序来转换。使用“bin:”驱动程序避免转换,因此bin:/var/tmp/bar不会将@am(xFE)转换为x0A等

如果你需要更多的细节,我很乐意补充