Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира

   Авторские страницы  >>   Программы Дмитрия Белошистова

  FTYPE - Модули для работы с макросами и файлами       Dmitry Beloshistov 27.03.2001

FType - утилитка обработки файлов, делает список файлов каталога с определением их типа.
Определение типа файла ведется согласно правилам/макросам,
которые берутся из конфига. Вообще-то сама FType достаточно примитивна.
Более ценными, на мой взгляд, являются модули FaFuncs, FManage, Macro...
А утилитка FType - что-то вроде демки ;)))))

  31k
 

Краткое описание функций и процедур модуля FaFuncs. ============================================================== function Lowcase(C:Char):Char; Переводит символ в нижний регистр. Работает только для английских символов. Пример использования: LowCase('A') = 'a' Function FillStrChar(Ch:Char; Num:integer):String; Возвращает строку длиной Num, состоящую из символов Ch. Пример использования: FillStrChar('#',5)='#####' function Spaces(Num:integer):String; Возвращает строку пробелов требуемой длины. Пример использования: Spaces(5) = ' ' Function DelCharStr(S:String; Chs:TCharSet):String; Удаляет из строки все символы, входящие во множество Chs. Пример использования: DelCharStr('AABBCCDD',['A','B'])='CCDD' Function ChangeFileExt(FileName,NewExt:String):String; Заменяет расширение у имени файла на новое. Пример использования: ChangeFileExt('FILE.DAT','TXT')='FILE.TXT' function BakFile(FileName:String):String; Меняет расширение у имени файла на '.BAK' Пример использования: BakFile('FILE.DAT')='FILE.BAK' function Bool(x : boolean):integer; Преобразует BOOLEAN в число. В некоторых случаях полезно. Пример использования: Bool(True)=1 Bool(FALSE)=0 function UnBool(x:integer):boolean; Обратное преобразование числа в BOOLEAN Пример использования: UnBool(1)=TRUE UnBool(0)=FALSE Function LeftTrimDelim(S:String;Delim:TCharSet):String; Удаляет в начале строки все символы, входящие во множество Delims. Пример использования: LeftTrimDelim(' AAAA ',[' '])='AAAA ' Function RightTrimDelim(S:String; Delim:TCharSet):String; Тоже самое, но символы удаляются в конце строки. Пример использования: RightTrimDelim(' AAAA ',[' '])=' AAAA' Function TrimDelim(S:String; Delim:TCharSet):String; Тоже самое, но символы удаляются в начале и конце строки. Пример использования: TrimDelim('.,..,AAAA.,.,..,',[',','.'])='AAAA' Function Trim(S:String):String; Удаление начальных и конечных пробелов в строке. Пример использования: Trim(' AAAA ')='AAAA' Function LeftTrim(S:String):String; Удаление пробелов слева (в начале строки). Пример использования: LeftTrim(' AAAAAA ')='AAAAAA ' Function RightTrim(S:String):String; Удаление пробелов справа (в конце строки). Пример использования: RightTrim(' AAAAAA ')=' AAAAAA' Function FirstWord(S:String; Delims:TCharSet):String; Вытаскивает из строки первое слово. Разделители слов передаются в Delims. Пример использования: FirstWord(' AAA BBB CCC ',[' '])='AAA' Function GetFirstWord(var S:String; Delims:TCharSet):String; То же самое, но в добавок слово удаляется из строки. Пример использования: GetFirstWord(' AAA BBB CCC ',[' '])='AAA' S='BBB CCC' Function LastWord(S:String; Delims:TCharSet):String; Вытаскивает из строки последнее слово. Пример использования: LastWord(' AAA BBB CCC ',[' '])='CCC' Function GetLastWord(var S:String; Delims:TCharSet):String; То же самое, но с удалением последнего слова из строки. Пример использования: GetLastWord('AAA BBB CCC',[' ']='CCC' S='AAA BBB' Function LastPos(SubStr,Str:String):integer; Нахождение последнего вхождения подстроки в строку. Написана в противовес Pos(), которая ищет первое вхождение. Пример использования: LastPos('CC','AACCBBCC')=7 Function ReplaceChar(S:String; OldChar,NewChar:char):String; Заменяет все символы OldChar в строке на NewChar. Пример использования: ReplaceChar('AAAAAA','A','B')='BBBBBB' Function DelDupCh(S:String; DupCh:Char):String; Удаление дублирующихся символов из строки. Пример использования: DelDupCh('AABBAABB','A')='ABBABB' Function DelSpace(S:String):String; Удаление всех робелов в строке. Пример использования: DelSpace(' a b c d ff')='abcdff' Function DelDupeSpace(S:String):String; Удаление двойных пробелов в строке. Пример использования: DelDupSpace(' a b c d ff')=' a b c d ff' Function DelSubStr(SubStr,S:String):String; Удаление подстроки из строки. Пример использования: DelSubStr('AA','AABBCCDD')='BBCCDD' Function ReplaceStr(S:String; OldSubStr,NewSubStr:String):string; Замена подстроки на новую. Пример использования: ReplaceStr('AABBCCDD','BB','ff')='AAffCCDD' Function LeftStr(S:String; Len:integer):String; Возвращает начальную часть строки заданной длины. Пример использования: LeftStr('12345678',5)='12345' Function RightStr(S:String; Len:integer):String; Возвращает конечную часть строки заданной длины. Пример использования: RightStr('12345678',5)='45678' function LeftPad(S:String; Len:integer):String; Дополняет строку пробелами слева до заданной длины. Пример использования: LeftPad('AAA',5)=' AAA' function RightPad(S:String; Len:integer):String; Дополняет строку пробелами справа до заданой длины. Пример использования: RightPad('AAA',5)='AAA ' function FnxTrm(S:String):boolean; Проверка на то, что строка либо пустая, либо состоит из одних пробелов. Пример использования: FnxTrm(' ')=True FnxTrm(' a ')=FALSE function StrToInt(S:String):longint; Перевод строки в целое число. При неудаче возвращает MaxLongInt. Пример использования: StrToInt('123')=123 function IntToStr(L:Longint):String; Перевод целого числа в строку. Пример использования: IntToStr(123)='123' Function MidStr(S:String; FirstPos,Len:integer):String; Возвращает подстроку начиная с заданной позиции и заданной длины. Пример использования: MidStr('ABCDDEFG',4,2)='DD' Function ModifyStr(S:String; FirstPos,Len:integer; NewStr:String):String; Заменяет подстроку в строке начиная с заданной позиции. Пример использования: ModifyStr('ABCDE',2,3,'GG')='AGGE' Function ValidStr(S:String; ValidChars:TCharSet):boolean; Проверка на то, что строка состоит только из заданных символов. Пример использования: ValidStr('ABC',['A'..'C'])=True ValidStr('ABC',['A','B'])=False Function ValidStrS(S,ValidChars:String):boolean; Аналогично, но сомволы передаются в строке. Пример использования: ValidStrS('ABCA','ABC')=True ValidStrS('ABC','AB')=False Function IntToHex(hex:Longint):string; Перевод целого числа в 16-ю систему счисления. Пример использования: IntToHex(255)='FF' function HexToInt(HexStr:String):longint; Перевод из 16-й системы счисления в 10-ю. Пример использования: HexToInt('FF')=255 function IntToBin(Bin:Longint):String; Перевод целого числа в 2-ю систему счисления. Пример использования: IntToBin(5)='101' Function BinToInt(BinS:String):longint; Перевод из 2-й системы счисления в 10-ю. Пример использования: BinToInt('101')=5 Function LeadZero(S:String; Len:integer):String; Дополнение строки слева пробелами до заданной длины. Пример использования: LeadZero('123',5)='00123' function Fnsz(N:Longint):String; Перевод целого в строку и дополнение строки "0" если ее длина меньше 2. Пример использования: Fnsz(5)='05' function Lz(N:Longint):String; Аналогично. Просто другое название. (Пришлось ввести для совместимости с моими старыми исходниками) Пример использования: lz(5)='05' Function PrintUsing(Mask:String; Number:Real):String; Форматирование строки с использованием маски. Пример использования: PrintUsing('#,###.##',12345.67)='1,2345.67' Function UpperCase(S:string):String; Перевод строки в верхний регистр. Работает для английских букв. Пример использования: UpperCase('aaaaa')='AAAAA' Function RUpCase(Ch: Char): Char; Перевод русских символов в верхний регистр. Пример использования: RUpCase('ы')='Ы' Function RUpperStr(s:string):String; Перевод строки в верхний регистр. Работает как для русских так и для анг- лийских букв Пример использования: RUpperStr('ыыы')='ЫЫЫ' Function RLowCase(Ch:Char):Char; Перевод русских символов в нижний регистр. Пример использования: RLowCase('Ы')='ы' Function RLowStr(S:String):String; Перевод строки в нижний регистр. Пример использования: RLowStr('ЫЫЫ')='ыыы' Function LowStr(s:string):String; Перевод строки в нижний регистр. Работает для английских букв. Пример использования: LowStr('AABBCC')='aabbcc' Function DelComment(s:string):String; Удаляет из строки все, что находится после CommentChar. Пример использования: DelComment('MyValue=0 ; comment string') = 'MyValue=0' Function cntrs(s:string; Len:integer):string; Центрирование строки. Пример использования: cntrs('a',3)=' a ' Function DeTab(s:string; TabSize:Byte):string; Перевод табуляции в пробелы. Function DLS(S:string):string; Удаление последнего слэша в имени директории. Пример использования: DLS('C:\WORK\')='C:\WORK' Function just(S:String;Len,LRC:longint):string; Выпавнивание строки. Строка дополняется до необходимой длины пробелами. Пример использования: just('a',3,1) = ' a' just('a',3,2) = 'a ' just('a',3,3) = ' a ' Function FilterStr(S:String;FilterChars:TCharSet;ReplaceChar:Char):String; Замена всех символов строки, входящих во множество FilterChars на опред. символ. Пример использования: FilterStr(' A A A A ',[' '],'.')='.A.A.A.A.' function XltStr(S:String; SourTable,DestTable:Integer):String; Перевод строки в другую кодовую таблицу. Procedure XltBuf(var Buffer:PXltBuffer;NChars:Word;SourTable,DestTable:integer); Перевод массива символов в другую кодовую таблицу. Function OemToAnsi(S:String):String; Перевод строки DOS -> WIN Function AnsiToOem(S:String):String; Перевод строки WIN -> DOS Function OemToKoi(S:String):String; Перевод строки DOS -> KOI8r Function KoiToOem(S:String):String; Перевод строки KOI8r -> DOS Function ConvertStr(S,SourceChars,DestChars:String):String; Замена всех подстрок в строке на новые. Пример использования: ConvertStr('ABCD','AB','EF')='EFCD' Function DetectCodePage(S:String):Integer; Определение кодовой страницы для строки. Function UpWordFirstCh(S:String; Delims:TCharSet):String; Перевод первого символа каждого слова в верхний регистр. Пример использования: UpWordFirtsCh('aa bb cc')='Aa Bb Cc' Function WordCount(S:String; Delims:TCharSet):integer; Подсчет числа слов в строке. Пример использования: WordCount('AA BB CC',[' '])=3 Function WordPos(S:String; WordNum:integer; Delims:TCharSet):integer; Определение позиции слова в строке. Пример использования: WordPos('AA BB',2,[' '])=3 Function ExtractWord(S:String; WordNum:integer; Delims:TCharSet):String; Извлечение слова из строки. Пример использования: ExtractWord('AA BB CC',2,[' '])='BB' Function PercentStr(Cur,Max:Longint; EmptyCh,FillCh:Char; Len:byte):String; Строка в виде Progress Bar. Пример использования: PercentStr(50,100,'.','#',10)='#####.....'); Function FloatToStr(R:Real):String; Перевод дробного числа в строку. Пример использования: FloatToStr(1.234) = '1.234' Function StrToFloat(S:String):Real; Перевод строки в дробное число. Пример использования: StrToFloat('1.234') = 1.234 Краткое описание функций и процедур модуля FManage ============================================================== function ValidFileName(var FileName: PathStr): Boolean; Проверка на корректность имени файла. function IsDirName(DirName: string): boolean; Проверка на то, что это имя директории. function IsFileName(FileName: string): boolean; Проверка на то, что это имя файла. function FileExist(FileName: string): Boolean; Проверка существования файла. function DirExist(DirName: string): Boolean; Проверка существования директории. procedure Fdel(FileName: string; Var ErrCode: byte); Удаление файла. procedure FDelAll(var ErrCode:byte); Удаленеи всех файлов текущего каталога. procedure Frename(SourceFile,TargetFile: string; Var ErrCode: byte); Переименование файла. procedure Unique(Path: String; Var FileName: String); Возвращает уникальное имя файла. Function Drives:string; Возвращает строку из букв активных дисков в системе. Procedure CopyFile(Source,Target:String;var Er:byte); Копирует файл Source в Target. Procedure AppendFile(Source,Target:string; var Er:Byte); Дополняет (дописывает в конец) содержимое Target в Source. Function GetFileSize(FileName:String):longint; Возвращает размер файла. Function GetCurDrive:char; Возвращает имя (букву) текущего диска. Procedure SetCurDrive(Drive:Char); Устанавливает текущий диск. Function NumOfCD:Word; Возвращает число подключенных CD. Function CDPresent:boolean; Проверка наличия CD в системе. Function CDDrives:string; Возвращает строку дисков CD. Procedure DelTreeFiles(Path:String); Удаление файлов в текущем каталоге и во всех вложенных подкаталогах. Procedure FDelAllDir(var Er:byte); Удаление всех файлов. Procedure DelTreeDirs(Path:String); Удаление дерева каталогов. Function NetPresent:boolean; Проверка на наличие сети (Novell) Function IsRemoteDrive(DrvNum:byte):boolean; Проверка на то, что диск является удаленным. Function DrvType(Drv:Char):byte; Возвращает тип диска. Procedure GetFileDate(FName:String; var D,M,Y:Word); Возвращает дату создания файла. Procedure GetFileTime(FName:String; var H,M,S:Word); Возвращает время создания файла. Function NewFileExt(FName,NewExt:String):string; Заменяет расширение файла на новое. Function GetFileExt(s:string):string; Возвращает расширение файла. Function IsFNameChar(Ch:Char):boolean; Проверка на то, что символ может быть в имени файла. Procedure FFSplit(S:String; var D,N,E:String); Аналог FSplit. Более корректно работает с длинными именами. Function ExtrName(S:String):string; Возвращает имя файла. Function ExtrPath(S:String):string; Возвращает путь к файлу. Function GetLongName(ShortName:String):string; Возвращает длинное имя по короткому. Function MakeDir(s:String):word; Создает каталог. Function GetCurDir(Drive:byte; var Dir:String):word; Возвращает текущий каталог. Function GetShortName(s:String):string; Возвращает короткое имя файла по длинному. Function SetArchAttr(FileName:String):Word; Устанавливает для файла атрибут "архивный" и возвращает старый атрибут. Procedure SetFileAttr(FileName:String; Attr:word); Установка атрибутов для файла. Function IsReservedFile(FileName:String):boolean; Проверка на то, что имя файла не является зарезервированным именем DOS. Function GetBootDrive:byte; Возвращает номер загрузочного диска. Function GetBootDriveCh:Char; Возвращает имя загрузочного диска. Function TempFileNameDec:String; Возвращает временное имя файла в 10-й системе счисления. Function TempFileNameHex:String; Возвращает временное имя файла в 16-й системе счисления. ------------------------------------------------------------------------------- Все пожелания и предложения на e-mail ;))))))) WBR Dmitry Beloshistov AKA [-=BDS=-] e-mail: torin@scm.com.ua