Funkce pro správu souborů

(close file-desc)
 
Argumenty:
 
file-desc
- popisovač souboru vrácený funkcí open
 
Popis:
  - zavře otevřený soubor
 
Návratové hodnoty:
  - nil - je-li file-desc platný
  - error zprávu - v opačném případě
 
Příklady:
  Výpočet řádků v souboru text.txt a přiřazení této hodnoty do proměné num_line:
  (setq fil "SOMEFILE.TXT")
  (setq x (open fil "r") ct 0)
  (while (read-line x)
  (setq ct (1+ ct))
  )
  (close x)

(findfile filename)
 
Argumenty:
 
filename
- jméno hledaného souboru nebo adresáře
 
Popis:
  - prohledává cesty AutoCADu a hledá specifikovaný soubor nebo adresář
 
Návratové hodnoty:
  - kompletní cestu a jméno souboru s koncovkou - je-li nalezen
  - nil - v opačném případě
 
Příklady:
  Hledání souboru xyz.txt, který se nachází v adresáři \acad:
  (findfile "xyz.txt")
    vrací "C:\\Program Files\\ACAD\\xyz.txt"
  Hledání adresáře acad, který se nachází v adresáři \acad:
  (findfile "xyz.txt")
    vrací "C:\\Program Files\\ACAD"
 
Pozor:
  V AutoCADu R13 poslední příkaz vrátí nil !!!

(open filename mode)
 
Argumenty:
 
filename
- jméno souboru s koncovkou, není-li specifikována cesta je prohledáván pouze adresář start-up
 
mode
- způsob otevření souboru:
     
r
- otevřen pro čtení
     
w
- otevřen pro zápis
     
- neexistuje-li otvíraný soubor, je soubor vytvořen
     
- existuje-li otvíraný soubor, je soubor přepsán
     
a
- otevřen pro přidání
        - neexistuje-li otvíraný soubor, je soubor vytvořen
        - existuje-li otvíraný soubor, jsou data přidána na konec souboru
 
Popis:
  - otevře soubor pro přístup I/O funkcí AutoLISPu
 
Návratové hodnoty:
  - ukazatel na soubor - vše proběhlo v pořádku
  - nil - v případě, že mód otevírání je "read" a specifikovaný soubor filename neexistuje
 
Příklady:
  Otevření existujícího souboru:
  (setq a (open "c:/program files/acad2000/help/filelist.txt" "r"))
    vrací #<file "c:/program files/acad2000/help/filelist.txt">

(read-char [file-desc])
 
Argumenty:
 
file-desc
- popisovač souboru vrácený funkcí open
    - není-li file-desc specifikován očekává se vstup z klávesnice
 
Popis:
  - získání ASCII kódu znaku přečteného ze vstupního bufferu klávesnice nebo z otevřeného souboru
 
Návratové hodnoty:
  - integer - reprezentuje ASCII kód znaku
  - ASCII kód 10 - přečte-li funkce read-char znak end-of-line
 
Příklady:
  Příkaz read-char bez argumentů - čtení z bufferu klávesnice:
  (read-char)
    - jelikož je buffer klávesnice prádný, čeká funkce na vstup od uživatele:
  ABC
    - vrací 65
  (read-char)
    - vrací 66
  (read-char)
    - vrací 67
  (read-char)
    - vrací 10 - buffer klávesnice je prázdný
  (read-char)
    - jelikož je buffer klávesnice prádný, čeká funkce na nový vstup od uživatele

Podívejte se na funkci read-line.

(read-line [file-desc])
 
Argumenty:
 
file-desc
- popisovač souboru vrácený funkcí open
 
- není-li file-desc specifikován očekává se vstup z klávesnice
 
Popis:
  - čte znaky z klávesnice nebo ze souboru do té doby, než je indikována značka end-of-line
 
Návratové hodnoty:
  - přečtený řetězec (bez značky end-of-line)
  - nil - v případě konce souboru
 
Příklady:
  Otevření souboru pro čtení:
  (setq f (open "c:\\my documents\\new.tst" "r"))
    vrací #<file "c:\\my documents\\new.tst">
  Přečtení řádky ze souboru:
  (read-line f)
    vrací "To boldly go where nomad has gone before."

Podívejte se na funkci read-char.

(vl-directory-files [directory pattern directories])
 
Argumenty:
 
directory
- jméno adresáře
 
- není-li argument uveden funkce vl-directory-files použije aktuální adresář
 
pattern
- maska pro výpis souborů ve formátu DOS
 
- není-li argument uveden funkce vl-directory-files použije masku "*.*"
 
directories
- integer - co se má vypisovat:
     
-1
- výpis pouze adresářů
     
0
- výpis souborů a adresářů (implicitní nastavení)
     
1
- výpis pouze souborů
 
Popis:
  - vypíše všechny soubory v zadaném adresáři
 
Návratové hodnoty:
  - seznam souborů a jmen cest
  - nil - žádný soubor neodpovídá masce
 
Příklady:
  _$ (vl-directory-files "c:/acadwin" "acad*.exe")
    vrací ("ACAD.EXE" "ACADAPP.EXE" "ACADL.EXE" "ACADPS.EXE")
  _$ (vl-directory-files "e:/acadwin" nil -1)
    vrací ("." ".." "SUPPORT" "SAMPLE" "ADS" "FONTS" "IGESFONT" "SOURCE" "ASE")
  _$ (vl-directory-files "E:/acad13c4" nil -1)
    vrací ("." ".." "WIN" "COM" "DOS")

(vl-file-copy source-file destination-file [append])
 
Argumenty:
 
source-file
- zdrojový soubor, není-li specifikována cesta je prohledáván pouze adresář start-up
 
destination-file
-cílový soubor, není-li specifikována cesta je prohledáván pouze adresář start-up
 
append
- je-li uveden a různý od nil - je zdrojový soubor připojen za cílový soubor
 
Popis:
  - zkopíruje nebo přidá obsah jednoho souboru do druhého
 
Návratové hodnoty:
  - integer - proběhlo-li kopírování v pořádku
  - nil - v opačném případě
  - typické případy vrácení nil:
    - source-file není čitelný (při otevření nutný mód "r")
    - source-file je adresář
    - append? - argument append není uveden nebo je rovný nil a destination-file existuje
    - destination-file nemůže být otevřen pro zápis
    - source-file je stejný jako destination-file
 
Příklady:
  Zkopírování souboru autoexec.bat na newauto.bat:
  _$ (vl-file-copy "c:/autoexec.bat" "c:/newauto.bat")
    vrací 1417
  Zkopírování souboru test.bat na newauto.bat:
  _$ (vl-file-copy "c:/test.bat" "c:/newauto.bat")
    vrací nil - kopírování selže, protože soubor newauto.bat již existuje a nebyl uveden argument append

(vl-file-delete filename)
 
Argumenty:
 
filename
- jméno souboru, není-li specifikována cesta je prohledáván pouze adresář start-up
 
Popis:
  - vymaže soubor
 
Návratové hodnoty:
  - T - vše proběhlo v pořádku
  - nil - vymazání souboru selhalo
 
Příklady:
  Vymazání souboru newauto.bat:
  _$ (vl-file-delete "newauto.bat")
    vrací nil - vymazání nebylo uskutečněno, protože v adresáři AutoCAD (start-up) není žádný soubor newauto.bat
  Vymazání souboru newauto.bat v adresáři c:\:
  _$ (vl-file-delete "c:/newauto.bat")
    vrací T - vymazání bylo uskutečněno, protože v adresáři c:\ soubor newauto.bat existoval

(vl-file-directory-p filename)
 
Argumenty:
 
filename
- jméno souboru nebo adresáře, není-li specifikována cesta je prohledáván pouze adresář start-up
 
Popis:
  - zjistí zda argument filename ukazuje na adresář
 
Návratové hodnoty:
  - T - jméno filename je jméno adresáře
  - nil - v opačném případě
 
Příklady:
  _$ (vl-file-directory-p "sample")
   

vrací T

  _$ (vl-file-directory-p "yinyang")
    vrací nil
  _$ (vl-file-directory-p "c:/program files/acad2000")
    vrací T
  _$ (vl-file-directory-p "c:/program files/acad2000/vlisp/yinyang.lsp")
    vrací nil

(vl-file-rename old-filename new-filename)
 
Argumenty:
 
old-filename
- jméno souboru, který chceme přejmenovat, není-li specifikována cesta je prohledáván pouze adresář start-up
 
new-filename
- nové jméno souboru
 
- není-li specifikována cesta, je soubor zapsán do start-up adresáře AutoCADu
 
Popis:
  - přejmenuje soubor
 
Návratové hodnoty:
  - T - přejmenování proběhlo v pořádku
  - nil - přejmenování selhalo
 
Příklady:
  _$ (vl-file-rename "c:/newauto.bat" "c:/myauto.bat")
    vrací T

(vl-file-size filename)
 
Argumenty:
 
filename
- jméno souboru, není-li specifikována cesta je prohledáván pouze adresář start-up
 
Popis:
  - zjistí velikost souboru v bytech
 
Návratové hodnoty:
  - integer - velikost souboru filename, proběhlo-li vše v pořádku
  - nil - soubor filename není čitelný
  - 0 - filename je adresář nebo prázdný soubor
 
Příklady:
  _$ (vl-file-size "c:/autoexec.bat")
    vrací 1417
  _$ (vl-file-size "c:/")
    vrací 0 - protože c:\ je adresář

(vl-file-systime filename)
 
Argumenty:
 
filename
- jméno souboru k ověření
 
Popis:
  - zjištění času poslední modifikace specifikovaného souboru
 
Návratové hodnoty:
  - seznam - obsahující datum a čas poslední modifikace
  - seznam obsahuje následující prvky:
   
year month day-of-week day-of-month
   
hours minutes seconds
  Poznámka: PONDĚLÍ je den číslo 1 atd.
  - nil - soubor nebyl nalezen
 
Příklady:
  _$ (vl-file-systime "c:/program files/acad2000/sample/visuallisp/yinyang.lsp")
    vrací (1998 4 3 8 10 6 52 0)
    - hodnota značí, že soubor byl modifikován 10. 4. 1998 ve čtvrtek v 6:52:0

(vl-filename-base filename)
 
Argumenty:
 
filename
- jméno souboru
 
Popis:
  - zjistí jméno souboru bez cesty a koncovky, funkce nekontroluje zda soubor existuje
 
Návratov8 hodnota:
  - řetězec - jméno souboru (bez cesty a koncovky)
 
Příklady:
  _$ (vl-filename-base "c:\\acadwin\\acad.exe")
    vrací "ACAD"
  _$ (vl-filename-base "c:\\acadwin")
    vrací "ACADWIN"

(vl-filename-directory filename)
 
Argumenty:
 
filename
- jméno souboru s kompletní cestou, funkce nekontroluje zda soubor existuje
 
- znaky "/" a "\" jsou akceptovány jako oddělovače adresářů
 
Popis:
  - získání adresáře z cesty k souboru po odstranění jména souboru a koncovky
 
Návratov8 hodnota:
  - řetězec - adresářovou část cesty souboru filename
 
Příklady:
  _$ (vl-filename-directory "c:\\acadwin\\acad.exe")
    vrací "C:\\ACADWIN"
  _$ (vl-filename-directory "acad.exe")
    vrací ""

(vl-filename-extension filename)
 
Argumenty:
 
filename
- jméno souboru s koncovkou, funkce nekontroluje zda soubor existuje
 
Popis:
  - získání koncovky ze jména souboru filename
 
Návratové hodnoty:
  - řetězec - koncovka souboru filename, řetězec začíná tečkou
  - nil - jméno souboru filename neobsahuje koncovku
 
Příklady:
  _$ (vl-filename-extension "c:\\acadwin\\acad.exe")
    vrací ".EXE"
  _$ (vl-filename-extension "c:\\acadwin\\acad")
    vrací nil

(vl-filename-mktemp [pattern directory extension])
 
Argumenty:
 
pattern
- řetězec - šablona souboru
 
- je-li argument rovný nil nebo není uveden použije funkce vl-filename-mktemp jméno "$VL~~"
 
directory
- jméno adresáře pro temporary soubory
 
- je-li argument rovný nil nebo není uveden použije funkce vl-filename-mktemp vybere z následujících adresářů v následujícím pořadí:
 
  - adresář specifikovaný v argumentu pattern
 
  - adresář specifikovaný v proměnné TMP
 
  - adresář specifikovaný v proměnné TEMP
 
  - v aktuálním adresáři
 
extension
-jméno koncovky přiřazené k souboru
 
- je-li argument rovný nil nebo není uveden použije funkce vl-filename-mktemp vybere z následujících adresářů v následujícím pořadí:
 
Popis:
  - vypočítá jedinečné jméno souboru použitelné jako temporary soubor
 
Návratové hodnoty:
  - řetězec - jméno souboru v následujícím formátu: directory\base<.extension> kde:
    base - do 5 znaků vytvořeno z pattern
    XXX - 3 znaky, jedinečná kombinace
  - všechny soubory generované funkcí vl-filename-mktemp během práce ve VLISPu jsou po skončení vymazány
 
Příklady:
  _$ (vl-filename-mktemp)
    vrací "C:\\TMP\\$VL~~004"
  _$ (vl-filename-mktemp "myapp.del")
    vrací "C:\\TMP\\MYAPP005.DEL"
  _$ (vl-filename-mktemp "c:\\acadwin\\myapp.del")
    vrací "C:\\ACADWIN\\MYAPP006.DEL"
  _$ (vl-filename-mktemp "c:\\acadwin\\myapp.del")
    vrací "C:\\ACADWIN\\MYAPP007.DEL"
  _$ (vl-filename-mktemp "myapp" "c:\\acadwin")
    vrací "C:\\ACADWIN\\MYAPP008"
  _$ (vl-filename-mktemp "myapp" "c:\\acadwin" ".del")
    vrací "C:\\ACADWIN\\MYAPP00A.DEL"

(write-char num [file-desc])
 
Argumenty:
 
num
- ASCII kód znaku, který má být napsán
 
file-desc
- ukazatel na otevřený soubor (vrácený funkcí open)
 
Popis:
  - napíše jeden znak na obrazovku nebo do souboru
 
Návratov8 hodnota:
  - argument num
 
Poznámka:
  Pozor, funkce write-char nedokáže zapsat NULL (ASCII kód 0) do souboru.
 
Příklady:
  Napsání znaku C do příkazového okna:
  (write-char 67)
    vrací C67
  Napsání znaku C do souboru (ukazatel na soubor je v proměnné f):
  (write-char 67 f)
    vrací 67

(write-line string [file-desc])
 
Argumenty:
 
string
- řetězec
 
file-desc
- popisovač souboru vrácený funkcí open
 
Popis:
  - napíše řetězec na obrazovku nebo do souboru
 
Návratov8 hodnota:
  - řetězec
 
Příklady:
  Otevření souboru:
  (setq f (open "c:\\my documents\\new.tst" "w"))
    vrací #<file "c:\\my documents\\new.tst">
   
  Napsání řádku do souboru:
  (write-line "To boldly go where nomad has gone before." f)
    vrací "To boldly go where nomad has gone before."
   
  Řádek není fyzicky zapsán do souboru dokud není soubor uzavřen:
  (close f)
    vrací nil