ADIR() | Заполняет группу массивов информацией директории. |
CURDIR() | Возвращает имя текущей директории DOS. |
DIRCHANGE() | Change the current DOS directory |
DIRMAKE() | Create a directory |
DIRREMOVE() | Remove a directory |
DISKCHANGE() | Change the current DOS disk drive |
DISKNAME() | Return the current DOS drive |
DISKSPACE() | Возвращает размер свободного пространства на указанном диске. |
DOSPATH() | Возвращает имя файла как в DOS системах. |
MAKEPATH() | Возвращает путь к файлу в UNIX стиле. |
STARTPATH() | Возвращает полный путь и имя программы. |
ADIR( [<шаблон имен файлов>], [<массив имен файлов>], [<массив размеров файлов>], [<массив дат>], [<массив времен>], [<массив атрибутов>] ) --> количество файлов
<шаблон имен файлов> | - шаблон, определяющий группу файлов для поиска |
в директории, задаваемой командой DEFAULT. Это обычное определение | |
файлов, которое может включать в себя символы (*) и (?), так же, как | |
имя устройства и путь доступа к директории. Если шаблон не задан, то | |
по умолчанию принимается *.* . | |
<массив имен файлов> | - массив, заполняемый именами файлов, |
соответствующих шаблону <шаблон имен файлов>. Каждый элемент содержит | |
имя файла и его расширение в виде строки символов в верхнем регистре. | |
<массив размеров файлов> | - массив, заполняемый информацией о размерах |
соответствующих файлов массива <массив имен файлов>. Он содержит | |
элементы арифметического типа. | |
<массив дат> | - массив, заполняемый датами создания соответствующих |
файлов массива <массив имен файлов>. Все элементы содержат тип DATE. | |
<массив времен> | - массив, заполняемый информацией о времени создания |
соответствующих файлов массива <массив имен файлов>. Каждый его | |
элемент представлен в виде строки символов в формате чч:мм:сс. | |
<массив атрибутов> | - массив, заполняемый информацией о файлах массива |
<массив имен файлов> | . Каждый его элемент - это строка символов. Если |
массив <массив атрибутов> определен, то в него выводится информация | |
как об обычных файлах, так и о системных, скрытых файлах и именах | |
поддиректорий. Если массив <массив атрибутов> не определен, выводится | |
только информация об обычных файлах. |
ADIR() возвращает количество файлов, имена которых совпадают с указанным шаблоном.
ADIR() - функция работы с массивами, выполняющая две основные операции. Во-первых, она возвращает количество файлов, имена которых совпадают с заданным шаблоном. Во-вторых, она заполняет группу массивов информацией об именах файлов, их размере, дате и времени их создания и атрибутах.
ADIR() - это функция, применяемая для совместимости с предыдущими версиями xClipper и потому ее использование в новых программах не рекомендуется. Ее можно заменить функцией DIRECTORY(), которая возвращает полную информацию о файлах в многомерном массиве.
Этот пример создает массив для хранения имен всех файлов с расширением (.txt) в текущей директории и выдает их имена на консоль при помощи функции AEVAL(): LOCAL aFiles[ADIR("*.txt")] ADIR("*.txt", aFiles) AEVAL(aFiles, {|element| QOUT(element) })
CURDIR([<имя устройства>]) --> имя текущей директории
CURDIR() возвращает имя текущей директории на устройстве, определенном аргументом <имя устройства> в виде строки символов без ведущих или завершающих символов (\).
При возникновении ошибки или если окажется, что указанное имя не является драйвером текущего устройства, CURDIR() возвращает пустую строку ("").
CURDIR() - это функция внешней среды, которая возвращает имя текущего драйвера устройства и каталога DOS. Значения SET DEFAULT и SET PATH игнорируются.
Следующая группа примеров демонстрирует различные способы использования функции CURDIR(): ? CURDIR("E:") // Результат: нулевая строка - корневой каталог ? CURDIR("C") // Результат: dir1\dir2 ? CURDIR("C:") // Результат: dir1\dir2 ? CURDIR() // Результат: нулевая строка - корневой каталог ? CURDIR("A") // Результат: нулевая строка - дисковод не готов
DIRCHANGE(<cDir>) --> nSuccess
DIRCHANGE() returns 0 if successful; -1 if there is an argument error. Otherwise, DIRCHANGE() returns the DOS error code.
DIRCHANGE() changes the current DOS directory. This function may also be used to determine whether or not a directory exists.
The following example attempts to change to the "c:\dos" directory. If it is unsuccessful, an error message is displayed. nResult := DIRCHANGE("c:\dos") IF nResult != 0 ? "Cannot change directory. " DO CASE CASE nResult == 3 ?? "Directory does not exist." CASE nResult == 5 ?? "Access to directory denied." END BREAK ENDIF You may also use something like this: DIRCHANGE( "..\..\test" )
DIRMAKE(<cNewDir>) --> nSuccess
DIRMAKE() returns 0 if successful; -1 if there is an argument error. Otherwise, DIRMAKE() returns the DOS error code.
DIRMAKE() creates a specified directory. Note that first you must have sufficient rights to create a directory. To create nested subdirectories, you must create each subdirectory separately, starting from the top-level directory that you want to create (see example below.)
This example assumes that C:\TEST exists and uses DIRMAKE() twice to create a nested subdirectory under it: DIRMAKE("c:\test\one") // Create top-most one nResult := DIRMAKE("c:\test\one\two") IF nResult != 0 ? "Cannot make directory, DOS error ", nResult BREAK ENDIF You may also use something like this: DIRMAKE( ".\test" )
DIRREMOVE(<cDirName>) --> nSuccess
DIRREMOVE() returns 0 if successful; -1 if there is an argument error. Otherwise, DIRREMOVE returns the DOS error code.
DIRREMOVE() removes a specified directory. Note that you must first have sufficient rights to delete a directory. A directory must be empty in order to be deleted. Therefore, to delete a directory that contains subdirectories, you must first delete the subdirectories (see example below).
This example uses DIRREMOVE() to delete a subdirectory named C:\TEST\ONE, which only contains an empty subdirectory named C:\TEST\ONE\TWO: DIRREMOVE("c:\test\one\two") // First delete lowest dir nResult := DIRREMOVE("c:\test\one") // Then delete higher dir IF nResult != 0 ? "Cannot remove directory, DOS error ", siResult BREAK ENDIF
DISKCHANGE(<cDrive>) --> lSuccess
DISKCHANGE() returns true (.T.) if successful; otherwise, it returns false (.F.).
This example uses DISKCHANGE() to change to drive "D": IF DISKCHANGE("D:") ? "Successfully changed" ELSE ? "Not changed" ENDIF This example builds a string that contains all currently available drives on your system: FUNCTION AllDrives() LOCAL wI, cDrives := "" FOR wI := 1 TO 26 IF DISKCHANGE( Chr(wI + 64) ) cDrives := cDrives + Chr(wI + 64) ENDIF NEXT RETURN cDrives
DISKNAME() --> cDrive
No arguments
DISKNAME() returns the letter of the current DOS drive, without a trailing colon.
This example illustrates the relationship between DISKNAME()and DISKCHANGE() and shows that DISKNAME() is unaffected by the SET DEFAULT TO command: ? DISKNAME() // C SET DEFAULT TO A ? DISKNAME() // C DISKCHANGE("A") ? DISKNAME() // A DISKCHANGE("C") ? DISKNAME() // C
DISKSPACE([<номер устройства>]) --> к-во байтов
DISKSPACE() возвращает количество свободных байтов на заданном диске в виде целого арифметического значения.
DISKSPACE() - это функция среды, которая определяет количество оставшихся доступных байтов на указанном диске. Она удобна, когда производится копирование или сортировка на другой дисковод для определения, имеется ли достаточно свободного места на диске для выполнения указанных команд. Другое применение - это использование функции DISKSPACE() в комбинации с функциями RECSIZE() и RECCOUNT() для создания процедуры сохранения файлов баз данных.
Функция DISKSPACE() игнорирует значение устройства по умолчанию, установленное командой SET DEFAULT.
В этом примере показана функция пользователя, которая демонстрирует использование функции DISKSPACE() для сохранения файла базы данных на другом устройстве: FUNCTION BackUp( cTargetFile, cTargetDrive ) LOCAL nSpaceNeeded, nTargetDrive // nSpaceNeeded = INT( RECSIZE() * LASTREC()) + HEADER() + 1) nTargetDrive := ASC( UPPER(cTargetDrive)) - 64 // IF DISKSPACE(nTargetDrive) < nSpaceNeeded RETURN .F. ENDIF COPY TO (cTargetDrive + ":" + cTargetFile) // RETURN .T.
DOSPATH(<sUnixFileName>) --> <sDosFileName>
Возвращает имя файла как в DOS системах.
DOSPATH() использует определенные CLIP функцией SET("C", ...) значения и возвращает UNIX имя файла в стиле DOS.
SET("C:", "/usr/home/user1") sUnixFileName := "/usr/home/user1/test.prg" ? DOSPATH(sUnixFileName) // --> C:\test.prg
MAKEPATH(<sDosPath>) --> <sUnixPath>
Возвращает строку <sUnixPath>, соответствующую пути к файлу в DOS-стиле.
MAKEPATH() преобразует строку, содержащую путь к файлу в DOS стиле <sDosPath> в строку, содержащую путь к файлу в UNIX стиле <sUnixPath>
SET("C:\", "/usr/home/user1/") sFileName := "C:\clip\include\clip.ch" ? MAKEPATH(sFileName) // --> /usr/home/user1/clip/include/clip.ch
STARTPATH() --> <sPath>
No arguments
Возвращает строку <sPath>, содержащую полный путь и имя стартовавшей программы..
STARTPATH() возвращает строку <sPath>, содержащую полный путь и имя стартовавшей программы..
? CURDIR() // --> /usr/home/user1/test ? STARTPATH() // --> /usr/home/user1/test/mytest ? DIRCHANGE("mybase") // --> 0 ? CURDIR() // --> /usr/home/user1/test/mybase ? STARTPATH() // --> /usr/home/user1/test/mytest
Не зависит от платформ
Пред. | Начало | След. |
ENVIRONMENT | Уровень выше | PACK/UNPACK |