Запись таблицы в файл с помощью выбора D3

Предположим, что в D3 у меня есть файл с именем foo, и я хочу записать содержимое файла в /var/tmp/bar. Документация заставляет меня поверить, что должна быть возможность заставить D3 записать файл в файловую систему, изменив указатель D на указатель Q, но я не могу понять, как это сделать.

1 ответ

Решение

Вы можете сделать это хотя бы несколькими способами.

1) Вы не хотите менять d-указатель на q-указатель, вы просто хотите создать q-указатель. Другими словами, нет необходимости сначала иметь d-указатель для доступа к файловой системе хоста. Таким образом, ваш q-указатель с именем 'bar' будет выглядеть так:

Q
/var/tmp/bar

С этим вы можете просто:

copy foo
to: (bar

Обратите внимание, что в этом случае 'bar' - это папка / каталог операционной системы, а не файл. "Файл" D3 - это таблица с несколькими записями. Это переводит в каталог операционной системы с несколькими файлами.

Параметры доступны в команде "Копировать" для подавления отображения идентификаторов элементов (ключей) при копировании записей (см. Документы).

2) Вам даже не нужен q-указатель:

copy foo
to: (/var/tmp/bar

3) Точно так же в коде вы можете использовать q-указатель или прямой путь:

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

==

Синтаксис пути использует механизм, называемый OSFI (см. Документы). С помощью этого синтаксиса вы можете указать драйвер. Драйвер по умолчанию "unix:" преобразует метки атрибута в EOL * nix, являющийся переводом строки x0A. Если вы используете Windows, по умолчанию используется значение "dos:", которое преобразует метки атрибута в CRLF x0D0A. Вы можете принудительно установить значение по умолчанию, указав путь к драйверу. Поэтому, чтобы создать файл в формате DOS в Unix/Linux, используйте dos:/var/tmp/bar. Драйверы по умолчанию также конвертируются между табуляцией и 4 пробелами (см. Документы). Значения и подзначения не преобразуются, но для этого можно создать новый драйвер. Используйте драйвер bin: чтобы избежать преобразований, поэтому bin:/var/tmp/bar не будет преобразовывать @am (xFE) в x0A и т. Д.

Если вам нужно больше подробностей, я буду рад добавить к этому.

Другие вопросы по тегам