72 lines
No EOL
1.6 KiB
Python
72 lines
No EOL
1.6 KiB
Python
def Letter2Number(letter):
|
|
if("A" in letter):
|
|
return 0
|
|
if("B" in letter):
|
|
return 1
|
|
if("C" in letter):
|
|
return 2
|
|
if("D" in letter):
|
|
return 3
|
|
if("E" in letter):
|
|
return 4
|
|
if("F" in letter):
|
|
return 5
|
|
if("G" in letter):
|
|
return 6
|
|
if("H" in letter):
|
|
return 7
|
|
if("I" in letter):
|
|
return 8
|
|
if("J" in letter):
|
|
return 9
|
|
if("K" in letter):
|
|
return 10
|
|
|
|
def ParseVCE(lines):
|
|
# Result object
|
|
result = []
|
|
|
|
# Pre-Stuff
|
|
tempQuestion = {
|
|
"type": 0,
|
|
"prompt": "",
|
|
"responses": [],
|
|
"correct": 0
|
|
}
|
|
state = 0
|
|
|
|
# Going through lines
|
|
for line in lines:
|
|
match(state):
|
|
case 0: # Awaiting question
|
|
if("QUESTION" in line):
|
|
state = 1
|
|
case 1: # Writing to prompt
|
|
if("A." in line):
|
|
state = 2
|
|
else:
|
|
tempQuestion["prompt"] += line
|
|
case 2: # Awaiting for answers
|
|
if(line == "" or line == " " or line == "\n" or line == None):
|
|
state = 3
|
|
case 3: #Adding responses
|
|
if(line == "" or line == " " or line == "\n" or line == None):
|
|
state = 4
|
|
else:
|
|
tempQuestion["responses"].append(line)
|
|
case 4: # Awaiting for correct answer
|
|
if("Correct" in line):
|
|
print(line)
|
|
tempQuestion["correct"] = Letter2Number(line.split(": ")[1])
|
|
elif("Section: " in line):
|
|
result.append(tempQuestion)
|
|
tempQuestion = {
|
|
"type": 0,
|
|
"prompt": "",
|
|
"responses": [],
|
|
"correct": 0
|
|
}
|
|
state = 0
|
|
|
|
# Return result
|
|
return result |