Práce se soubory a jejich FileName
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Práce se soubory a jejich FileNamePráce se soubory a jejich FileName

 

Práce se soubory a jejich FileName

Google       Google       1. 3. 2007       19 645×

Dnes to bude o FileNamech souborů, změně pozice kurzoru a zastavení přeblikávání obrázku.

Dnešní díl bude zaměřen převážně na funkce, jež budou pracovat s cestami k souboru. Ale předtím si ještě řekneme trik na zrušení otravného přeblikávání obrázku, je-li s ním programově zacházeno. Do události OnCreate formuláře napíšeme:

procedure TForm1.FormCreate(Sender: TObject);
begin
   Image1.Parent.DoubleBuffered := True; // tímto jsme zrušili přeblikávání obrázku
end;

S následujícím kouskem kódu zapsaném například do Timeru by už už neměl obrázek blikat:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Image1.Left := Image1.Left + 1;
end;

A teď k slibovaným funkcím pro práci s tzv. Filename. Tyto funkce jsou dobré, znáte-li úplnou cestu k souboru (C:\Program Files\neco\program.exe), ale uživateli chcete pouze zobrazit jméno souboru (program.exe), nebo pouze adresář, v němž je dotyčný soubor uložen (C:\Program Files\neco\), atd. Mohli bychom si to zařídit sami pomocí spousty jiných funkcí, jenže proč to dělat složitě – Delphi již má pro tuto příležitost připraveno plno nijak složitých funkcí. Nejprve uvedu seznam s popisem těchto f-cí, poté si napíšeme i nějaký zdrojový kód na ukázku.

function ExtractFileDrive(const FileName: string): string;
Tato funkce nám ze zadané cesty (C:\Program Files\neco\program.exe) vrátí pouze označení disku (C:).
function ExtractFilePath(const FileName: string): string;
Vrátí nám ze zadané cesty pouze adresáře, přes které se k souboru dostaneme, např. C:\Program Files\neco\.
function ExtractFileDir(const FileName: string): string;
Skoro stejná funkce jako ExtractFilePath až na to, že výstup je bez lomítka na konci (C:\Program Files\neco).
function ExtractFileName(const FileName: string): string;
Vrací nám název souboru ze zadané cesty (program.exe).
function ExtractFileExt(const FileName: string): string;
Vrací příponu souboru (.exe).
function ExtractShortPathName(const FileName: string): string;
Vrací krátký název, jenž je využíván např. v DOSu(C:\Progra~1\Borland\Delphi\Bin\Delphi32.exe).
function FileExists(const FileName: string): Boolean;
Když zadaný filename existuje, vrací True, jinak False.
function GetCurrentDir: string;
Vrací název složky, ve které se zrovna nacházíme.
function DeleteFile(const FileName: string): Boolean;
Vymaže soubor. Pokud soubor nelze vymazat, vrací False.
function FileAge(const FileName: string): Integer;
Vrací stáří souboru. Když soubor neexistuje, pak je návratovou hodnotou číslo −1.
function RenameFile(const OldName, NewName: string): Boolean;
Změní název souboru. Když přejmenování proběhne úspěšně, vrátí False.
function RemoveDir(const Dir: string): Boolean;
Vymaže adresář. Pozor! Tento adresář musí být prázdný před vymazáním, jinak funkce vrátí False a adresář nevymaže.

Teď něco z kódu. Nejprve si na formulář přidáme komponentu OpenDialog z palety Dialogs. Na formuláři klikneme na nově vzniklou ikonku a v okně Properties na vlastnost Filter. Zobrazí se dialogové okno, co chce po nás zadat hodnoty do Filter Name a Filter. Filter Name nám obsluhuje to, co se bude u dialogu dole zobrazovat. Zadáme tam „Všechny soubory“. Položka Filter znamená, jaké typy souborů chceme v našem dialogu vidět. Jelikož ve Filter Name máme „Všechny soubory“, zvolíme i příslušný Filter, a to „*.*“. Pro zobrazení pouze textových souborů bychom do Filter napsali „*.txt“. Dále přidáme ještě jeden Edit, Label a Button. Do události OnClick Button1 napíšeme:

procedure TForm1.Button1Click(Sender: TObject);
var
 s:string; //deklarace proměnné pro uložení cesty k souboru
begin
  If OpenDialog1.execute Then begin
    s := OpenDialog1.FileName; // proměnné přiřadíme filename zvoleného souboru
    If trim(s) <> '' then begin //pokud se 's' nerovná ničemu :)
      Label1.caption := ExtractFileName(s); //z filename si vybereme jen jméno souboru
    end else
      exit; //když jsme nevybrali žádný soubor, tak pryč
  end;
end;

Zdrojový kód je dnes poměrně jednoduchý. Místo funkce ExtractFileName můžeme dosadit kteroukoliv z výše uvedeného výčtu.


Další zajímavou funkcí je GetCursorPos a SetCursorPos.

Funkce GetCursorPos nám najde aktuální souřadnice kurzoru. Její návratová hodnota je typu TPoint, což vypadá takto:

type TPoint = packedrecord
  X: Longint;
  Y: Longint;
end;

Nyní si napíšeme zdrojový kód aplikace, která bude zobrazovat v titulku okna souřadnice myši. Přidáme si na formulář Timer z palety System, dáme mu interval 1 (milisekunda) a do události OnTimer Timer1 napíšeme:

procedure TForm1.Timer1Timer(Sender: TObject);
var
 s:TPoint;
begin
 GetCursorPos(s);
 Form1.Caption := 'X = '+ IntToStr(s.X) + ', Y = '+ IntToStr(s.Y);
end;

Jestliže byste chtěli programově změnit pozici kurzoru, poslouží vám funkce SetCursorPos. Do nového tlačítka na formuláři napište do jeho události OnClick následující:

procedure TForm1.Button2Click(Sender: TObject);
begin
 SetCursorPos(0,0);
end;

Po kliknutí tlačítkem myši se kurzor objeví na souřadnicích 0,0 – levý horní roh.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programoval v Visual Basicu, Delphi, nyní jen v Jave!

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý