HTML Template λΆλΆμ Generating νλ λΆλΆμ νλμ€, λμμ΄λκ° ν΄λ‘ λ§λ HTML μ½λλ₯Ό λΆμν΄λ³Όλ SigntureSurvey μ λ°©λ²μ μ μ©ν΄λ³΄λ©΄ μ΄λ€ μΌμ΄ μΌμ΄λ κΉ μλ¬Έμ΄ λ€μλ€. κ·Έλμ κ°λ¨νκ² μ€νν΄λ³΄κ³ , μ΄λ ν View λ₯Ό μ»μ μ μμκΉ κ΅¬κ²½ν΄λ³΄λ€.
Plex μ¬μ©.
Plex μ¬μ©.
~cpp
from Plex import *
import StringIO
class HtmlSigSurveyer(Scanner):
def repl_tagEnd(self, aText):
self.begin('')
result = "." * (len(aText)-1) + ">"+ str(len(aText)-1) +"\n"
return result
def repl_tagChar(self, aText):
return "."
def repl_normalString(self, aText):
return aText
def repl_tagStart(self, aText):
self.begin('tag')
return aText
def repl_enter(self, aText):
return "\n"
def repl_whiteSpace(self, aText):
return ""
tagStart = Str("<")
tagEnd = Rep1(AnyBut(">")) + Str(">")
enterCode = Str("\n")
whiteSpace = Rep1(Str(" ")) | Rep1(Str("\t"))
lexicon = Lexicon([
(tagStart, repl_tagStart),
State('tag', [
(tagEnd, repl_tagEnd),
(enterCode, repl_enter),
(AnyChar, repl_tagChar)
]),
(whiteSpace, repl_whiteSpace),
(AnyChar, repl_normalString),
])
def __init__(self, aStream):
Scanner.__init__(self, self.lexicon, aStream)
def process(self):
writer = StringIO.StringIO("")
while True:
token = self.read()
if token[0] is None:
break
writer.write(token[0])
return writer.getvalue()
def readFromFile(aFileName):
f = open(aFileName, 'r')
text = f.read()
f.close()
return text
def writeToFile(aFileName, aStr):
f = open(aFileName, 'w')
f.write(aStr)
f.close()
if __name__=="__main__":
data = readFromFile("sig.html")
surveyer = HtmlSigSurveyer(StringIO.StringIO(data))
result = surveyer.process()
lines = [line for line in result.splitlines() if line.strip() != '']
count = 1
for line in lines:
print count, line
count +=1
κ²°κ³Όλ¬Όμ΄ λκ° λ€μκ³Ό κ°μλλ°.
μ νν λΆμμ ν κ²μ μλμ§λ§. <> νκ·Έ μμΌλ‘ μ΄ κΈμμκ° κ°λ€λ©΄ νλ©΄μμμλ λΉμ·ν κ²μ 보μ΄κ² νκΈ° μν΄ C & P λ₯Ό νμ νλ₯ μ΄ λλ€. κ·Έλ¬λ©΄ κ·Έ λΆλΆμ λν΄μ looping μ νλ μμΌλ‘ λ¬ΆμΌλ©΄ λ κ² κ°λ€. μ’ μ΄λ‘ μ°μ΄λκ³ λ³΄λ©΄ λ°λ³΅λλ λΆλΆμ λν΄μ μΌλ°νλ ν¨ν΄μ΄ 보μΈλ€λ κ²μ μ μ μλ€. κ·Έ λΆλΆμ λν΄ μ μ ν 1μ°¨μ μΌλ‘ κ²μμ νκ³ , generating ν λμ λ¨μλ€μ λμ§μ΄λ΄λ©΄ λλ κ²μ΄λ€.
~cpp 1 <............................................................>60 2 <..>2 3 <..........................>26 4 <...>3 5 <...>3 6 <..>2 7 <.........................>25 8 <..........................................................................>74 9 <...>3 10 <................................>32 11 <..........................................................................>74 12 <..>2 13 <..>2 14 <...............................................................................................>95 15 <.................................................>49 16 TV<..>2 17 <...............................................................................................>95 18 <.................................................>49 19 VTR<..>2 20 <...............................................................................................>95 21 <.................................................>49 22 DVD<..>2 23 <...............................................................................................>95 24 <.................................................>49 25 νμμ΄ν°<..>2 26 <...............................................................................................>95 27 <.................................................>49 28 λμ₯κ³ <..>2 29 <...............................................................................................>95 30 <.................................................>49 31 μΈνκΈ°<..>2 32 <...............................................................................................>95 33 <.................................................>49 34 μ€λμ€<..>2 35 <...............................................................................................>95 36 <.................................................>49 37 μΉ΄μΈνΈ<..>2 38 <...............................................................................................>95 39 <.................................................>49 40 μν¬λ§¨/λ ΉμκΈ°<..>2 41 <..>2 42 <.......................>23 43 <..............................................................................................>94 44 <...............................................................................................>95 45 <..>2 46 <.....................................................>53 47 <.............................................................>61 . . .μ΄λ₯Ό λΆμν λλ 4-5point λ‘ λ μ΄μ λ‘ 2λ¨ λλμ΄μ μ°μλ€. λ³λ‘ μ’ μ΄λ₯Ό λ§μ΄ μ°¨μ§νμ§ μλλ€.
μ νν λΆμμ ν κ²μ μλμ§λ§. <> νκ·Έ μμΌλ‘ μ΄ κΈμμκ° κ°λ€λ©΄ νλ©΄μμμλ λΉμ·ν κ²μ 보μ΄κ² νκΈ° μν΄ C & P λ₯Ό νμ νλ₯ μ΄ λλ€. κ·Έλ¬λ©΄ κ·Έ λΆλΆμ λν΄μ looping μ νλ μμΌλ‘ λ¬ΆμΌλ©΄ λ κ² κ°λ€. μ’ μ΄λ‘ μ°μ΄λκ³ λ³΄λ©΄ λ°λ³΅λλ λΆλΆμ λν΄μ μΌλ°νλ ν¨ν΄μ΄ 보μΈλ€λ κ²μ μ μ μλ€. κ·Έ λΆλΆμ λν΄ μ μ ν 1μ°¨μ μΌλ‘ κ²μμ νκ³ , generating ν λμ λ¨μλ€μ λμ§μ΄λ΄λ©΄ λλ κ²μ΄λ€.
μ²μμ¨λ΄μ μλ²½νκ² νμ μ΄ λ€μ§ μμ§λ§, SignatureSurvey λ₯Ό μ¬μ©νλ©΄ Duplication Code λ₯Ό μ°Ύλ λ°©λ²μΌλ‘ μΌλ°νλ₯Ό μν¬ μ μμ§ μμκΉ νλ μμμ ν΄λ³Έλ€.
--1002
--1002









