Možná, že vás již někdy napadla myšlenka oživit svůj web o náhodně zobrazované texty (vtipy, citáty apod.). Pokud nevíte jak na to, je tento článek určen právě pro vás.

Pro jednoduchost údržby umístíme veškeré texty do textového souboru kde bude každý citát uložen na jednom řádku ukončeném ENTERem. Pro urychlení činnosti funkce ješte umístíme na první řádek počet rádků v souboru.

Soubor ze kterého budeme čerpat citáty bude mít tedy následující obsah:

2
První stupeň blbosti je pocit geniality.
Není lepší školy života, než moci z blízka a dlouhodobě sledovat blba ve vedoucí funkci. Pak totiž jasně vidíte jak se věci nemají dělat.

Pomocí jednoduché funkce tento soubor otevřeme, přečteme si počet citátu uložených v souboru a vygenerujeme si náhodné číslo pomocí kterého si vybereme příslušný citát ze souboru. Poté zavřeme soubor a jako návratovou hodnotu funkce vrátíme text citátu.

Celá funkce pak vypadá takto:

<%
function citaty
‚Deklarace proměnných
  Dim ObjFS,ObjStream,cislo,pocet,i,text,cesta
‚Otevření souboru
  Set ObjFS=Server.CreateObject(„Scripting.FileSystemObject“)
  cesta=server.MapPath(„citaty.txt“)
  Set ObjStream=ObjFS.OpenTextFile(cesta)
‚Zjištění poctu citátu a výběr citátu, který se načte
  pocet=INT(ObjStream.Readline)
  Randomize
  cislo= Int(Rnd *pocet)
‚Najetí na vybraný citát
  for i=1 to cislo
    ObjStream.SkipLine
  next
‚Načtení vybraného citátu
  text=ObjStream.ReadLine
‚Zavření souboru
  ObjStream.Close
  Set ObjStream=Nothing
  Set ObjFS=Nothing
‚Vrácení vybraného citátu jako výsledek funkce
  citaty=text
end function
%>

Pokud chceme na stránku vložit citát stačí pouze vložit na požadované místo tento kód:

<%
response.write(citaty)
%>

V tomto prezentovaném kódu není implementováno ošetření případných chyb jako je neexistence souboru apod.

Stojí za úvahu, zda si pro více navštěvovaný web neuložit citáty do Application a poté se pouze odkazovat na pamětové promenné.

Ošetrení chyb a ukládání do Application si můžete udělat za domácí úkol a napsat jej do diskuze. Správné řešení se dozvíte v některém z příštích článku.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět