Запись таблицы в файл с помощью выбора 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 и т. Д.
Если вам нужно больше подробностей, я буду рад добавить к этому.