VOBSAH           DalÓÉ           PŇedeÓlej
 
logo

ASLFileRequestr v AmigaE provedení

Motto: Pařim E! Jó to je ale kuřba...
 
Když mi pracovitost nesežere ta zkurvená lenost, tak jednoho dne Vám představim zcela převratnej traker z kterýho budete totálně na prach! (Píšu ho, jak jste jistě pochlempili, v éčku.) Teď ale už k věci...
 
Malá ukázka toho, jak lze v Amige E otevírat "inteligentně" ASLFilerequester. Funguje to tak, že pro otevření Filerq. se zavolá jednoduchá funkce, která vrátí kód podle toho, jak byla úspěšná. Tento kód se uloží do globální proměné, což využívá funkce pro uzavření freq..

Abych nezapoměl. Funkce 'RequestFile(req)' vrací do struktury "filerequester" zvlášť cestu k souboru a zvlášť jeho jméno. Proto jsem musel dát dohromady funkci 'join_path()', která spojí tyto dva řetězce do jediného a vrátí ho jako výsledek své práce.

Tu ja bigen:
 

MODULE 'Asl', 'libraries/Asl', -> nahrajem si potřebný inklůdy
       'dos/dos'

DEF req:PTR TO filerequester,  -> ukazatel na strukturu filerequester
    errASL:LONG,               -> proměná pro uložení návrat. kódu po
                               -> otevření filereq.
    pathfile[512]:STRING       -> řetězec pro uložení cesty a jména souboru 

PROC main()                    -> havní program (funkce main())
errASL := openASL()            -> otevřem si filereq.
IF errASL = 2                  -> vše je ok
  join_path(req, pathfile)     -> spojíme cestu se jménem souboru 
  WriteF('Vybrán soubor: \s\n', pathfile)   -> vypsání hlášky...
ELSEIF errASL = 1              -> nevybral se žádnej soubor
  WriteF('Vybrals prd...\n')   -> hláška
ELSE                           -> něco je nefachčenko...
  WriteF('ERROR 311. Call Mulder and Sculy!\n') -> h.
ENDIF
closeASL()                     -> kill ASL =|:^)
ENDPROC                        -> konec programu

-> A nyní si dáme pár procedur.

-> tahle spojuje dva řetězce dohromady 
PROC join_path(areq:PTR TO filerequester, stri:PTR TO CHAR)
  DEF pom[1]:STRING                 -> pomocnej jednoznakovej řetězec
  stri := StrCopy(stri, areq.drawer, ALL) 
  RightStr(pom, stri,1)             -> načti poslední znak cesty do pom
                       -> když TO nekončí na '/' , '' nebo ':' 
  IF (StrCmp(pom,':',1) OR StrCmp(pom,'/',1) OR StrCmp(pom,'',1)) = FALSE
    StrAdd(stri,'/')        -> bude nutný přidat lomítko
  ENDIF
  stri := StrAdd(stri, areq.file, ALL) -> spojení cesty s názvem souboru
  SetStr(stri, StrLen(stri))  -> konverze string - estring
ENDPROC stri

PROC openASL()   -> otevře ASL.Library a vše ostatní
  IF aslbase:=OpenLibrary('asl.library',37)     -> -1 = nelze otevřít asl
    IF req:=AllocFileRequest()                  ->  0 = nelze ot. filereq.
      IF RequestFile(req)                       ->  1 = nevybrán soubor 
         RETURN 2                               ->  2 = vše OK 
      ELSE                       -> co sem to zas vymyslel za ujetý kódy?
        RETURN 1
      ENDIF
    ELSE
      RETURN 0
    ENDIF
  ELSE
    RETURN -1
  ENDIF
ENDPROC

PROC closeASL()           -> uzavře filereq. podle kódu v errASL
  IF errASL = 2 OR errASL = 1
    FreeFileRequest(req)
    CloseLibrary(aslbase)
  ELSEIF errASL = 0
    CloseLibrary(aslbase)
  ENDIF
ENDPROC
Toť vše. Využití si už najděte sami. Já to balim...

E.N.I.F.          

Zdroják v použitelným stavu najdeš v bunusu.
 
__________________________________________  
.
 
Další ve frontě:
 
KodeŇina   Instrukce procesorů 680xx, APtoÉÉ - pouhej začátek
 

 
VokeCáVKy HarDWare warez WorkBenchoviny DeMa Gfx&Muzika PaŇBY VokecÁvky II
Vokecávky Hardware Warez WBoviny Dema Gfx&Muz Pařby Vokecávky 2