?- idx1 := newVector([]); ?- fileName := "_"; main() :- dirs := newFileReader("metaf.txt"), curVec := newVector([]), directories(getName()) ; directories(null) :- !, converted; directories(Name) :- make(Name), createTable(Name), fail ; directories(Name) :- curVec := newVector([]), directories(getName()) ; mainn(X, Dir1, Dir2) :- XML = readXML("files/"+X+".xml"), Items = eXElem(XML, "//webster/item"), itemsNext := eXElem(XML, "//webster/item/item"), createFiles(Items, Dir1, Dir2) ; /*------генерация HTML файла первого item уровня---------*/ createFiles(Enum, _, _) :- exhausted(Enum), !; createFiles(Enum, Dir1, Dir2) :- It = eValue(Enum), Word = sTrim(getXText(It, "//title")), Namef = correctName(Word), Namelinks =Dir2+"_Index.html", ItemsEnum = eXElem(It, "/item/item"), HTML = TeaCode Webster

_createFile(ItemsEnum);

назад домой

_Word;

Электронный словарь Webster
Сгенерировано Флэнг-системой © 2004 TeaCode.com

, writeHTML("webster/"+Dir1+"/"+Dir2+"/"+ Namef +".html", HTML, "w"), !, vAdd(^curVec, Namef), write(Namef+nl()),!, createFiles(eNext(Enum), Dir1, Dir2) ; createFile(ItemEnum) :- exhausted(ItemEnum), !, []; createFile(ItemEnum) :- It = eValue(ItemEnum), Spell = sTrim(getXText(It, "//spell")), Type = sTrim(getXText(It, "//type")), Source = sTrim(getXText(It, "//Source")), Date = sTrim(getXText(It, "//Date")), Description = getXText(It, "//description"), TABLE = _trLine("Произношение:", Spell, "#404040"); _trLine("Часть речи:", Type, "#606060"); _trLine("Происхождение:", Source, "#606060"); _trLine("Появление:", Date, "#A0A0A0"); _trLine("Определение:", Description, "#c0c0c0");

, [TABLE | createFile(eNext(ItemEnum))] ; trLine(_, "") :- !, []; trLine(Title, Content) :- _Title;
_Content;
; trLine(_, "", _) :- !, []; trLine(Title, Content, Color) :- _Title;
_Content;
; correctName(Str) :- V = sToU(Str), corr(V, vLength(V)-1), uToS(V); corr(_, -1) :- true; corr(V, I) :- C = vGet(V, I), (C ='.'## C = ':' ## C = '/' ## C = 39 ## C = '?'), !, vSet(V, I, '_'), corr(V, I-1); corr(V, I) :- corr(V, I-1); /*Создание новой директории с последующим копированием XML файлов в эту директорию*/ make(null) :- !; /* однобуквенные директории */ make(Name) :- sLength(Name)=1, !, writeHTML("webster/"+^fileName+"/"+^fileName+".html", createIndexHTML(^fileName, ^idx1, "../index.html#TABLE", "../index.html"), "w"), fileName := Name, idx1 := newVector([_Name;]), mkDir("webster/"+Name), mkDir("webster/"+Name+"/"+Name), mainn(Name, Name, Name) ; /* двухбуквенные директории */ make(Name) :- CurrentSingle = subString(Name, 0, 1), vAdd(^idx1, _Name;), mkDir("webster/"+CurrentSingle+"/"+Name), mainn(Name, CurrentSingle, Name) ; getName() :- readLine(^dirs); createTable(Name) :- Dir = subString(Name, 0, 1), newlink :="../"+Dir+"/"+Name+"/", numbertd:=0, List = cT(enum(^curVec)), HTML = createIndexHTML(Name, List, "../"+Dir+".html", "../../index.html#TABLE"), writeHTML("webster/"+Dir+"/"+Name+"/"+Name+"_Index.html", HTML, "w") ; cT(Enum) :- exhausted(Enum), !, []; cT(Enum) :- El = eValue(Enum), setNumtd(), Ell = getTr(^numbertd), [_El;, Ell | cT(eNext(Enum))]; /*cT(Enum) :- El = eValue(Enum),[ _El; | cT(eNext(Enum))];*/ getLinks(Str1,Str2):-NewStr=Str1+Str2+"/"+Str2+".html",NewStr; getTr(Tr):-Tr !=6, ""; getTr(Tr):-Tr=6,Gtr=(),numbertd:=0, ; setNumtd():-numbertd:=^numbertd+1,numbertd; /* ************** createIndexHTML ********************* */ createIndexHTML(Name, List, Back, Home) :- TeaCode Webster

назад домой

_Name+"...";

_List;

Электронный словарь Webster

Сгенерировано Флэнг-системой © 2004 TeaCode.com

; t(X) :- trace("level", X);