C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 fnsplit / f / Библиотечн. функции Borland C++

fnsplit

Функция            Разделяет полное имя файла на компоненты.

Синтаксис          #include <dir.h>
                   int fnsplit(char * path, char * drive,
                   char * dir, char * name, char * ext);

Файл, содержащий   dir.h
прототип

Описание           Функция fnsplit берет в качестве входного аргумента
                   полное  имя  файла (то есть маршрут доступа path) в
                   форме :

                   X:\DIR\SUBDIR\NAME.EXT

                   и делит  его  на  4  части,  которые  запоминает  в
                   символьных строках,  адресными указателями  которых
                   являются:   drive,   dir,  name,  ext.  (Каждый  из
                   компонентов  может  получить  значение  NULL,   что
                   означает,  что данный компонент был выделен,  но не
                   сохранен).

                   Максимальный размер  для  данных  символьных  строк
                   задается  константами  MAXDRIVE,  MAXDIR,  MAXPATH,
                   MAXNAME,  MAXEXT  (определяемыми  в  файле  dir.h),
                   причем  каждая  длина  включает  в  себя  место для
                   позиции нулевого байта.

 ----------------------------------------------------------------------  
 Константа          Максимальная            Строка
                      длина
 ----------------------------------------------------------------------
 MAXPATH                (80)             path;
 MAXDRIVE               (3)              drive; включая двоеточие (:);
 MAXDIR                 (66)             dir; включая лидирующий и
                                         хвостовой знак (\);
 MAXFILE                (9)              name;
 MAXEXT                 (5)              ext; включая ведущую точку(.)
 ----------------------------------------------------------------------

                   Функция fnsplit  подразумевает,  что  для  хранения
                   каждого   компонента   достаточно   места   (  если
                   компонент имеет значение, отличное от NULL).

                   При расщеплении  полного  имени   файла   (маршрута
                   доступа)  на  части  функция  fnsplit  воспринимает
                   символы пунктуации следующим образом:

                   - Компонент     drive     сохраняет      двоеточие,
                     присоединенное к спецификации дисковода (C:, A: и
                     т.д).

                   - Компонент dir сохраняет ведущие и хвостовые знаки
                     \ (\tc\include\, \source\, и т.д).

                   - Компонент name включает имя файла.

                   - Компонент ext сохраняет точку, предшествующую
                     расширению имени файла (.c, .exe, и т.д.).

                   Функции fnmerge и fnsplit взаимообратны.  Если вы с
                   помощью  функции fnsplit разделите на части маршрут
                   доступа path, а затем сольете полученные компоненты
                   с  помощью  функции  fnmerge,  то вы снова получите
                   маршрут доступа path.

Возвращаемое       Функция fnsplit возвращает целое число (составлен-
значение           ное из 5-ти флагов, описанных в файле dir.h), ко-
                   торое показывает,  какие компоненты  полного  имени
                   файла присутствуют в path;  далее перечислены флаги
                   и компоненты, которые они обозначают:

                   EXTENSION - расширение имени файла;
                   FILENAME  - имя файла;
                   DIRECTORY - каталог (и возможно подкаталоги);
                   DRIVE     - спецификация дисковода (смотрите
                               файл dir.h);
                   WILDCARD  - шаблоны (* или?).

Переносимость      Функция работает только в системе DOS.

Смотрите также     fnmerge.

Пример:

#include<string.h>
#include<stdio.h>
#include <dir.h>

int main(void)
{
    char drive[MAXDRIVE];
    char dir[MAXDIR];
    char file[MAXFILE];
    char ext[MAXEXT];
    char *s;
    int flag;
      s=getenv("COMSPEC");
      flag = fnsplit(s,drive,dir,name,ext);
      printf("Командный процессор :");
            if (flag & DRIVE)
              printf("\tдисковод: %s\n",drive);
            if (flag & DIRECTORY)
              printf("\tдиректория: %s\n",dir);
            if (flag & FILENAME)
              printf("\tимя: %s\n",name);
            if (flag & EXTENSION)
              printf("\tрасширение: %s\n",ext);
            return 0;
}