# -*- encoding: iso-8859-1 -*-

"""Öffnet die vereinheitlichte Lexikonversion version01.txt und liest 
sie in eine Liste. Übergibt alle Lexikoneinträge einzeln an die 
Printfunktion.
"""
	
import re, time, os
import classEntry02
import classLemmaModifyer


def printTxt(p):
	"""druckt das Wörterbuch in eine Textdatei. 
	"""
	f = open("../../res/02WAT.txt", "a")
	f.write("ID: " + p.getIdent() + "\n")
	f.write("WL1: "+ "\t".join(p.getWl1()) + "\n")
	f.write("WL2: "+  "\t".join(p.getWl2()) + "\n")
	f.write("IBED: " + p.getIbed() + "\n")
	f.write("RECTYP: " + p.getRectyp() + "\n")
	for zLine in p.getZ():
		f.write(zLine[0] + "\t")
		for s in zLine[1]:
			f.write(s + "\t")
		f.write("\n")
	for qLine in p.getQ():
		f.write(qLine[0] + "\t")
		sCount = 1
		for s in qLine[1]:
			f.write(s + "\t")
		f.write("\n")
	if p.getUnknown():
		f.write("UNBEKANNT: " + p.getUnknown() + "\n")
	f.write("AUTOR: " + p.getAuthor() + "\n")
	f.write("DATUM: "+ p.getDate() + "\n")
	f.write("\n")
	return countManip
	
	
def rmOldVersions():
	"""löscht, wenn vorhanden, Dateien, die in diesem Programm neu erstellt werden.
	Da die Dateien im append-Modus geöffnet werden, werden die alten Versionen 
	nicht automatisch überschrieben.
	"""
	if os.path.exists("../../res/02WAT.txt"): 
		os.unlink("../../res/02WAT.txt")
		
	if os.path.exists("../../res/teilergebnisse/02rmBracket.txt"): 
		os.unlink("../../res/teilergebnisse/02rmBracket.txt")
		
	if os.path.exists("../../res/teilergebnisse/02rmLetter9Letter.txt"): 
		os.unlink("../../res/teilergebnisse/02rmLetter9Letter.txt")
		
	if os.path.exists("../../res/teilergebnisse/02rmNonAlphas.txt"): 
		os.unlink("../../res/teilergebnisse/02rmNonAlphas.txt")
		
	if os.path.exists("../../res/teilergebnisse/02sonderZ.txt"): 
		os.unlink("../../res/teilergebnisse/02sonderZ.txt")	



if __name__ == "__main__":
	"""Öffnet die vereinheitlichte Lexikonversion version01.txt und liest 
	sie in eine Liste. Übergibt alle Lexikoneinträge einzeln an die 
	Printfunktion.
	"""
	time1 =  time.time()
	lexicon = open("../../res/01WAT.txt")
	rmOldVersions()
	countEntry = 1
	countManip = 0
	wholeEntry = []
	line = lexicon.readline()
	while line:
		line = line.strip()
		if re.search("ID:", line):
			if wholeEntry and wholeEntry[0] is not "":
				countEntry += 1
				p = classEntry02.Entry(wholeEntry)
				classLemmaModifyer.LemmaModifyer(p)
				printTxt(p)
			wholeEntry = []
		wholeEntry.append(line)
		line = lexicon.readline()
	p = classEntry02.Entry(wholeEntry)
	m = classLemmaModifyer.LemmaModifyer(p)	
	printTxt(p)
	print "Anzahl der Lexikoneinträge: ", countEntry
	time2 =  time.time()
	print "Laufzeit in Minuten: ", (time2-time1)/60


