Dabar yra 2020-09-23, 07:39




Naujos temos kūrimas Atsakyti į temą  [ 7 pranešimai(ų) ] 
mIRC: Viskas apie Hash Tables 
Autorius Žinutė
Dalyvis
Dalyvis
Vartotojo avataras

Užsiregistravo: 2010-09-22, 23:20
Pranešimai: 232
Forumo litai: 256
Pinigų pervedimas
Standartinė mIRC: Viskas apie Hash Tables
Labas vakaras mielieji LT-Help lankytojai. :lol:
Taigi, dabar yra sestadienio vakaras ir as neturiu ka veikt tai sugalvojau supazindinti jus su Hash Tables.
Lyg ir nera cia nieko panasaus, taigi jeigu netycia koks Sngz yra parases kanors, atsiprasau, kad kartojuosi.


Kas yra Hash Tables?
Hash Tables leidzia jums greitai issaugoti betkoki kieki informacijos kuri veliau gali butu greitai ir lengvai prieinama. Tai daug paprastesnis ir maziau apkraunantis budas saugoti informacijai, nei musu populiarus saugojimai i INI ar TXT failus. Hash Tables yra saugomi kompiuterio atmintyje, tai reiskia, kad po mIRC isjungimo visa saugoma informacija dings (kaip to isvengti papasakosiu veliau), bet visdelto toks saugojimas leidzia atlikti labai greitas operacijas su dideliu kiekiu informacijos. Hash Tables saugojama informacija pagal 2 parametrus: lenteles varda ir informacijos varda. Beto i Hash Tables galima saugoti ir &binvar.


Kodel Hash Tables veikia greiciau?
Duosiu labai paprasta pavyzdi kaip veikia INI failo skaitymas:
....1. Atidaromas INI failas.
....2. Visas INI failas perskaitomas i kompiuterio atminti.
....3. Surandama sekcija is kurios skaitome.
....4. Surandama informacija kuria skaitome.
....5. Perduodama informacija naudojimui.
Dabar kaip veikia Hash Table:
....1. Kompiuterio atmintije surandama lentele is kurios skaitome.
....2. Perduodama informacija naudojimui.
INI failo perskaitymas i atminti uzima labai dideli laiko tarpa, taipogi ieskojimas dideliame kiekyje informacijos uzima irgi nemazai laiko, butent del siu priezasciu Hash Tables veikia daug greiciau.



Kaip saugoti informacija i Hash Table?
Norint saugoti informacija i Hash Table visu pirma kompiuterio atmintyje reikia susikurti lentele. Tam yra skirta hmake komanda:
Kodas:
/hmake LentelesVardas N
Si komanda sukurs Hash Table su nurodytu lenteles vardu. N parametras nurodys kiek skirtingos informacijos bus saugoma lenteleje, jeigu to nezinote N parametro aprasyti nebutina. Taigi kai turime lentele jau galime i ja saugoti informacija su hadd komanda:
Kodas:
/hadd LentelesVardas InformacijosVardas Informacija
arba
Kodas:
/hadd LentelesVardas InformacijosVardas &binvar
Si komanda isgaus informacija su nurodytu pavadinimu i nurodyta lentele. Viskas turbut aisku.



Kaip istrinti informacija is Hash Table?
Informacijos trynimui naudojama komanda hdel:
Kodas:
/hdel LentelesVardas InformacijosVardas
Norint istrinti visa lentele naudojama komanda hfree:
Kodas:
/hfree LentelesVardas



Kaip isgauti informacija is Hash Table?
Norint isgauti informacija is Hash Table naudojamas $hget:
Kodas:
$hget(LentelesVardas,InformacijosVardas)
Jeigu skaitome &binvar, informacija iskarto saugome i &binvar:
Kodas:
$hget(LentelesVardas,InformacijosVardas,&binvar)
$hget gali buti panaudotas ir lenteles/informacijos skaiciui gauti:
Kodas:
$hget(0) - Lenteliu Skaicius
$hget(1) - Grazins pirmos lenteles varda
$hget(LentelesVardas).size - Informacijos skaicius
$hget(LentelesVardas,1) - Grazins pirmos informacijos varda



Kaip surasti informacija is Hash Table?
Tam puikiausiai tinka funkcija $hfind:
Kodas:
$hfind(LentelesVardas,*tekstas*,N,w)
N parametras nusako kelinta rezultata grazinti, w nurodo ieskomo teksto tipa, siuo atveju wildmatch.



Kaip issaugoti Hash Table velesniam naudojimui?
Hash Table saugojimas i INI failus:
Kodas:
/hsave -i LentelesVardas Failas.ini Sekcija
Informacijos krovimas is INI failo:
Kodas:
/hload -i LentelesVardas Failas.ini Sekcija
Saugant informacija i INI faila suteikia jums galimybe tame paciame faile issaugoti kelias lenteles. Bet tai turi ir siokiu tokiu trukumu, kaip zinome INI faile sekcijos apgaubiamos [ ir ] simboliais, tai reiskia kad lenteles ar informacijos varde negali butu [ arba ] simboliu. Jeigu tokie simboliai egzistuoja, Hash Table galima issaugoti ir i TXT faila:
Kodas:
/hsave LentelesVardas Failas.txt
Informacijos krovimas:
Kodas:
/hload LentelesVardas Failas.txt



Tai turbut tiek butu apie Hash Tables. Norint Hash Table naudotis kaip duomenu baze, tenka informacija saugoti i TXT ar INI faila darbo pabaigoje ir informacija pakrauti darbo pradzioje. Nors tai siektiek atrodo kaip ejimas per aplinkui, bet visdelto darbo metu bus garantuotas greitas ir paprastas informacijos naudojimas... :)

I si straipsniuka idejau daug sirdies, tad butu gerai jeigu turetumet ka pridurt/pataisyt. :wink:
Ir atsiprasau, kad be lietuvisku raidziu, labai ilgai uztruktu su sita sena svedu klaviatura. :D
Daugiau informacijos apie Hash Tables: /help Hash Tables

Kodo pavyzdys (iso pasiulymu):
Kodas:
menu channel {
  -
  Saugoti kanalo duomenis:{
    if (!$hget($+(kanalas:,$chan))) {
      hmake $+(kanalas:,$chan)
    }
    hadd $+(kanalas:,$chan) zmones $nick($chan,0)
    hadd $+(kanalas:,$chan) modai $chan($chan).mode
    echo -a Kanalo duomenys isaugoti.
  }
  Rodyti kanalo duomenis:{
    if ($hget($+(kanalas:,$chan))) {
      echo -a Uzfiksuotas kanalo zmoniu skaicius: $hget($+(kanalas:,$chan),zmones)
      echo -a Uzfiksuoti kanalo modai: $hget($+(kanalas:,$chan),modai)
    }
    else {
      echo -a Kanalo duomenys nefiksuoti.
    }
  }
  Istrinti kanalo duomenis:{
    if ($hget($+(kanalas:,$chan))) {
      hfree $+(kanalas:,$chan)
    }
    echo -a Kanalo duomenys istrinti.
  }
  -
}
Paprasciausiai isaugos ir atvaizduos kanalo modus ir zmoniu skaiciu. Visiskai nenaudingas, tik siaip pavyzdys kaip veikia Hash Tables.

_________________
.


Paskutinį kartą redagavo flow 2010-10-10, 14:24. Iš viso redaguota 1 kartą.



2010-10-09, 22:51
Aprašymas
Patyręs dalyvis
Patyręs dalyvis
Vartotojo avataras

Užsiregistravo: 2009-12-08, 21:19
Pranešimai: 955
Forumo litai: 1125
Pinigų pervedimas
Miestas: Vilnius
Standartinė Re: Viskas apie Hash Tables
neblogai :) +1 rep :DD

_________________
!!! <-

search.php & Google

Respect Existence or Expect Resistance


2010-10-09, 23:36
Aprašymas
Kalbusis dalyvis
Kalbusis dalyvis
Vartotojo avataras

Užsiregistravo: 2006-02-05, 16:05
Pranešimai: 1556
Forumo litai: 939
Pinigų pervedimas
Miestas: Klaipeda
Standartinė Re: Viskas apie Hash Tables
Viskas kaip ir gerai. bet reikejo pridet pavyzdini skriptuka :)

_________________
Niekas nezino ka savyje slepia, kol neparagauja valdzios.


2010-10-10, 00:06
Aprašymas WWW
pats kiečiausias
pats kiečiausias
Vartotojo avataras

Užsiregistravo: 2006-11-27, 15:52
Pranešimai: 1780
Forumo litai: 777
Pinigų pervedimas
Miestas: Vilnius
Standartinė Re: Viskas apie Hash Tables
o, :) niekad neteko tais hashais naudotis :D bet dalykas tai geras... perkėliau prie pagrindinių temų.


2010-10-10, 00:55
Aprašymas WWW
Dalyvis
Dalyvis
Vartotojo avataras

Užsiregistravo: 2010-09-22, 23:20
Pranešimai: 232
Forumo litai: 256
Pinigų pervedimas
Standartinė Re: mIRC: Viskas apie Hash Tables
Pridejau kodo pavyzdi.

_________________
.


2010-10-10, 14:24
Aprašymas
Patyręs dalyvis
Patyręs dalyvis
Vartotojo avataras

Užsiregistravo: 2005-09-25, 12:11
Pranešimai: 974
Forumo litai: 235
Pinigų pervedimas
Miestas: Klaipėda / Vilnius
Standartinė Re: mIRC: Viskas apie Hash Tables
Liux! Perskaičiau kažką naujo, apie Hash Tables neteko visai girdėti

_________________
Skaityti tekstą, parašytą šveplai – tai kaip skaityti užrašytą šūdu ant sienos: lyg ir suprantama viskas, ir vis tiek nemalonu.

Mane galima rasti:
Tinklaraštis | Wikipedia | Facebook | Last.fm | DeviantArt


2010-10-18, 09:27
Aprašymas WWW
Dalyvis
Dalyvis
Vartotojo avataras

Užsiregistravo: 2010-10-06, 02:42
Pranešimai: 168
Forumo litai: 186
Pinigų pervedimas
Standartinė Re: mIRC: Viskas apie Hash Tables
O čia visai neblogas dalykėlis :wink:

_________________
Klausk, aš galiu padėti!


2010-10-18, 14:14
Aprašymas
Rodyti paskutinius pranešimus:  Rūšiuoti pagal  
Naujos temos kūrimas Atsakyti į temą  [ 7 pranešimai(ų) ] 


Dabar prisijungę

Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 4 svečių


Jūs negalite kurti naujų temų šiame forume
Jūs negalite atsakinėti į temas šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite trinti savo pranešimų šiame forume
Jūs negalite prikabinti failų šiame forume

Ieškoti:
Pereiti į:  
cron
© phpBB Group. Veikia phpBB pagrindu.
Dizaino autorius Vjacheslav Trushkin, adaptavo Igor „MucTuK“ Gubaidulin
Vertė Vilius Šumskas © 2003, 2005, 2007