## Coverage profiler SDK

### Funkce

- LoadDllFunc()
- LoadDllFuncEx()
- ExtractPathFromFile()
- ExtractFileFromFile()
- GetTempPathEx()
- MKD()
- RemoveDirectoryAll()
- NullTermined()

#### LoadDllFunc()

Pokusí se inicializovat API funkci z DLL knihovny.
    BOOLEAN LoadDllFunc(
       lcFunc STRING && Deklarace API funkce
    )
  Parametr: lcFunc Kompletní deklarace API funkce včetně vstupních parametrů. Vrací: .T. - API funkci se podařilo zavést, .F. - API funkci se nepodařilo zavést Příklad:
      IF !LoadDllFunc("DECLARE INTEGER WinExec IN KERNEL32.DLL STRING,INTEGER")
         WAIT WIND "Nepodařilo se zavést potřebnou API funkci"
      ENDIF

#### LoadDllFuncEx()

Pokusí se inicializovat API funkce v DLL knihovnách.
    BOOLEAN LoadDllFuncEx(
       @laFunc ARRAY && Seznam deklarací API funkcí
    )
  Parametr: laFunc Jednorozměná matice, předaná odkazem, obsahující kompletní deklarace API funkcí včetně vstupních parametrů. Vrací: .T. - Všechny API funkci se podařilo zavést, .F. - Aspoň jednu API funkci se nepodařilo zavést Příklad:
      LOCAL ARRAY laFunc(2)
      * Naplnění matice
      laFunc(1)="DECLARE INTEGER WinExec IN KERNEL32.DLL STRING,INTEGER"
      laFunc(2)="DECLARE         Sleep IN KERNEL32.DLL INTEGER"
      IF !LoadDllFuncEx(@laFunc)
         WAIT WIND "Nepodařilo se zavést potřebné API funkce"
      ENDIF

#### ExtractPathFromFile()

Vrátí cestu z umístění a názvu souboru
    STRING ExtractPathFromFile(
       lcFile STRING && Cesta+název souboru
    )
  Parametr: lcFile Umístění a název souboru, může to být i UNC cesta Vrací: Cestu z umístění a názvu souboru. Pokud je jen předán název souboru, pak se vrátí prázdný řetězec. Příklad:
      LOCAL lcFile
      lcFile=SYS(2023)+"\"+SYS(2015)+".tmp"
      ?lcFile,ExtractPathFromFile(lcFile)

#### ExtractFileFromFile()

Vrátí název souboru (i s příponou) z umístění a názvu souboru.
    STRING ExtractFileFromFile(
       lcFile STRING && Cesta+název souboru
    )
  Parametr: lcFile Umístění a název souboru, může to být i UNC cesta Vrací: Název souboru s příponou z umístění a názvu souboru. Pokud je předán jen adresář, pak se vrátí prázdný řetězec. Příklad:
      LOCAL lcFile
      lcFile=SYS(2023)+"\"+SYS(2015)+".tmp"
      ?lcFile,ExtractFileFromFile(lcFile)

#### GetTempPathEx()

Vrátí pracovní adresář.
    STRING GetTempPathEx()
  Vrací: Pracovní adresář. Pokud se nepodaří získat pracovní adresář z OS, pak se pracovní adresář bere z VFP. Příklad:
      LOCAL lcTMP
      lcTMP=GetTempPathEx()
      ?lcTMP

#### MKD()

Založí adresář.
    INTEGER MKD(
       lcPath STRING && Adresář jež se má založit
    )
  Parametr: lcPath Adresář jež se má založit, může to být i UNC cesta Vrací:
  0 | Adresář se podařilo založit
  1 | Adresář již existuje
  2 | Přístup zamítnut
  3 | Nekorektní název adresáře
  4 | Neznámý disk (root) nebo CD-ROM
  Poznámka: Řetězec může obsahovat i makra. Příklad:
      * Vytvoření adresáře
      LOCAL lcPath
      lcPath="c:\temp\xx"
      ?MKD(lcPath)

      * Vytvoření adresáře s makrem
      LOCAL lcPath,lcXX
      lcPath="c:\temp\&lcXX"
      lcXX="XX1"
      ?MKD(lcPath)

#### RemoveDirectoryAll()

Smaže obsah adresáře, včetně podaresářů
    BOOLEAN RemoveDirectoryAll(
       lcPath STRING && Adresář jež se má smazat, může to být i UNC cesta
    )
  Parametr: lcPath Adresář jež se má smazat, může to být i UNC cesta Vrací: .T. - Adresář se podařilo kopletně smazat, .F. - Adresář se nepodařilo smazat Poznámka: Řetězec může obsahovat i makra. Příklad:
      * Smazání adresáře
      LOCAL lcPath
      lcPath="c:\temp\xx\yy"
      ?RemoveDirectoryAll(lcPath)

      * Smazání adresáře s makrem
      LOCAL lcPath,lcXX
      lcPath="c:\temp\&lcXX\yy"
      lcXX="XX1"
      ?RemoveDirectoryAll(lcPath)

#### NullTermined()

Vrátí obsah řetězce před prvním /0 znakem (CHR(0))
    STRING NullTermined(
       lcString STRING && Řetězec obsahující /0 znak (navrácená hodnota z API funkce)
    )
  Parametr: lcString Řetězec obsahující /0 znak (navrácená hodnota z API funkce) Vrací: obsah řetězce před prvním /0 znakem (CHR(0)) Příklad:
      IF !LoadDllFunc("DECLARE INTEGER ExpandEnvironmentStrings IN KERNEL32.DLL STRING @ ,STRING @, INTEGER")
         WAIT WIND "Nepodařilo se zavést potřebnou API funkci"
      ELSE
         LOCAL lcIn,lcOut
         lcIn="%windir%"
         lcOut=SPACE(254)
         =ExpandEnvironmentStrings(@lcIn,@lcOut,LEN(lcOut))
         ?lcIn,lcOut,NullTermined(lcOut)
      ENDIF