Programowanie w języku Delphi » Moduły

FileCtrl

  • 2009-01-16 19:56
  • 2 komentarze
  • 1063 odsłony
  • Oceń ten tekst jako pierwszy
Moduł FileCtrl zawiera metody ułatwiające operowanie na systemie plików, zwłaszcza operacje na ścieżkach. Posiada kilka bardzo przydatnych funkcji, o których zwykle się zapomina:


  • function MinimizeName(const Filename: TFileName; Canvas: TCanvas; MaxLen: Integer): TFileName;
    Funkcja skraca pełną ścieżkę do pliku, podaną jako pierwszy parametr  (Filename) w sposób aby zmieściła się na płótnie Canvas (obiekt Canvas na którym rysujemy) podanym jako drugi parametr, w polu o szerokości podanej jako patametr trzeci (MaxLen). W przypadku długich ścieżek, nie mieszczących się wpodanych ryzach, część ścieżki zostanie "wykropkowana".

Przykład:
  const
    app_path = 'C:\Program Files (x86)\4programmers\FileCtrl\Przykładowy program demonstrujący działanie funkcji MinimizeName\Aplikacja.exe';
 
  // Zwróci "C:\...\Aplikacja.exe"
  ShowMessage(MinimizeName(app_path, Form1.Canvas, 200));



  • function ForceDirectories(FolderPath: string): boolean;
    Funkcja tworzy trasę folderów wzdłuż ścieżki podanej jako parametr (FolderPath). Zwraca False w przypadku gdy parametr (FolderPath) jest pusty lub nie jest on prawidłową ścieżką.

Przykład:
var trasa_folderow : string;
 
trasa_folderow := 'C:\Folder pierwszy\Folder drugi\Folder trzeci\ Folder czwarty';
 
// Jeśli dana trasa folderów nie istnieje, stwórz ją!
if not DirectoryExists(trasa_folderow) then
  ForceDirectories(trasa_folderow);




  • procedure (const FullFileName: string; var Drive: Char; var DirPart: string; var FilePart: string);
    Funkcja przetwarza pełną ścieżkę dostępu do pliku (FullFileName) na literę dysku (Drive), ścieżkę dostępu do katalogu (DirPart) i nazwę pliku (FilePart). Wartości zwracane są przez referencję. Ważne jest, że plik znajdujący się pod ścieżką podaną jako pierwszy parametr MUSI istnieć, w przeciwnym razie funkcja nie zadziała (zwróci wyjątek EInOutError i wyświetli komunikat Invalid FileName).

Przykład:
const
  przykladowa_sciezka = 'C:\Program files (x86)\4programmers\FileCtrl\Aplikacja.exe';
 
var 
  LiteraDysku : Char; 
  SciezkaKatalogu, NazwaPliku : string;
begin
 
  // Plik pod podaną ścieżką MUSI istnieć by funkcja zadziałała
  ProcessPath(przykladowa_sciezka, LiteraDysku, SciezkaKatalogu, NazwaPliku);
 
  ShowMessage(LiteraDysku);
  ShowMessage(SciezkaKatalogu);
  ShowMessage(NazwaPliku);
 
  // Zwróci:
 
  // LiteraDysku = 'C'
  // SciezkaKatalogu = '\Program files (x86)\4programmers\FileCtrl'
  // NazwaPliku = 'Aplikacja.exe'



UWAGA! Moduł FileCtrl jest zależny od platformy.

2 komentarze

PiortekZ15 2012-08-31 07:48

ale na szczęście nazwa tej procedury jest podana w przykładzie, więc spoko

guma 2009-01-17 09:14

brak nazwy procedury procedure (const FullFileName: string; var Drive: Char; var DirPart: string; var FilePart: string);
należałoby poprawić:)