русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Анализ имен файлов


Дата добавления: 2015-06-12; просмотров: 650; Нарушение авторских прав


16.4.5.1. Процедура FSplit( X : PathStr, VAR Dir : DirStr, VAR Name : NameStr, VAR Ext: ExtStr). Эта процедура служит для разбиения на части полного имени файла. Под полным именем мы понимаем конструкцию из маршрута на диске и собственно имени файла. Принимая на входе строку X, процедура разбивает ее на три подстроки соответствующих типов:

Dir — имя маршрута на диске;

Name — имя файла ( до восьми символов без точки );

Ext — точка и следующее за ней расширение.

Если при разборе строки X окажется невозможным выделить какой-либо ее компонент, то вернется значение '' (пустая строка). Примеры вызовов и их результаты можно увидеть в табл. 16.4.

Таблица 16.4

Значение X Dir= Name= Ext=
‘C:\DOS33\SYS.COM’ ‘C:\DOS33\’ ‘SYS’ ‘.COM’
‘BILL.EXE’ ‘’ ‘BILL’ ‘.EXE’
‘GAMES\DIGGER’ ‘GAMES\’ ‘DIGGER’ ‘’
‘GAMES\DIGGER\’ ‘GAMES\DIGGER\’ ‘’ ‘’
‘A:FILE.COM’ ‘A:’ ‘FILE’ ‘.COM’

В некоторых случаях возможна неоднозначная трактовка параметра X. Так, в примере с 'GAMES\DIGGER' подстрока 'DIGGER' может быть и именем файла, и именем подкаталога.

Процедура FSplit никогда не запрашивает диск, чтобы разобраться в подобных проблемах. Она просто считает последнее слово после символа '\' в строке именем файла. Если подразумевается, что DIGGER — имя подкаталога, то надо дописывать символ разделения каталогов. {367}

16.4.5.2. Функция FExpand( X : PathStr ) : PathStr. Действие функции состоит в приведении строки X к полному имени файла, причем к какому именно, зависит от значения X.

Если X — просто имя файла или имя файла с указанием его подкаталога относительно текущего местонахождения, то функция допишет к X полный маршрут текущего положения. Но если X уже содержит полное имя, то оно просто перепишется заглавными буквами без добавления маршрута. Сказанное выше иллюстрируется табл. 16.5 (считается, что текущий каталог — C:\TEST):



Таблица 16.5

Пример вызова Возвращаемое значение
... :=Fexpand( ‘test.txt’ ) ‘C:\TEST\TEST.TXT’
... :=Fexpand( ‘..\DEMO\d.pas’ ) ‘C:\DEMO\D.PAS’
... :=Fexpand( ‘..\auto.bat ’ ) ‘C:\AUTO.BAT’
... :=Fexpand( ‘\LEX\out.txt ’ ) ‘C:\LEX\OUR.TXT’
... :=Fexpand( ‘\’ ) ‘C:\’
... :=Fexpand( ‘\\’ ) ‘C:\\
... :=Fexpand( ‘SUBDIR\’ ) ‘C:\TEST\SUBDIR\’
... :=Fexpand( ‘A:\LEX\our.txt’ )  

Программа на рис. 16.11 показывает, как можно применить процедуру FSplit и функцию FExpand для написания заведомо «капризных» программ, которые работают только с файлами из текущего каталога.

USES DOS; { ПРИМЕР ОБРАБОТКИ ИМЕН ФАЙЛОВ } VAR X, FullName : PathStr; Dir : DirStr ; Name : NameStr; Ext : ExtStr ; BEGIN Write( 'Введите полное имя обрабатываемого файла: ' ); ReadLn( X ); FSplit(X, Dir, Name, Ext); { состав введенного имени } X:=FExpand( X ); { перевод в верхний регистр } if ( Dir=' ' ) or {He введен путь или же ка- } (X<>FExpand(Name+Ext)) { талог при X - не текущий. } then begin { Файл не оттуда! Конец. } WriteLn( #10'Ошибка в имени'+ или попытка обмануть программу!' ); Halt end; { if } ... { работа с верным именем } END.

Рис. 16.11 {368}

Не следует забывать, что параметры и переменные, стоящие в вызовах этих процедур, должны быть описаны соответствующими типами, хотя после вызовов с ними можно обращаться, как с обычными строками назначенной длины.



<== предыдущая лекция | следующая лекция ==>
Работа с атрибутами файлов | Работа с прерываниями MS-DOS


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.035 сек.