Duda con extraccion de datos de un texto

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola compañeros , tengo un problema un poco lioso , resulta que tengo un txt con unos 400 cuestionarios de preguntas respuesta, codigo y etc en el , los test son asi :

Código: Seleccionar todo

COD: 6
¿A qué es equivalente la tara de un vehículo?

A. A la masa del vehículo con su conductor y, en su caso, pasajeros.
B. A la masa de la carga.
C. A la masa del vehículo en vacío.
D. A la masa del vehículo con carga.

RESPUESTA: C
NORMA: RD 2822/1998 14
Y como este hay unos 400en el .txt
Mi duda es como como extraer del texto los cuestionarios por partes , para poder indexar-lo en una base de datos , osea yo quiero por separado extraer del texto en cada cuestionario:

COD: 6 ---> Esto seria la extension "Codigo" en la tabla de mi Base de datos , ademas seria también el indice (RecordID)

¿A qué es equivalente la tara de un vehículo?
A. A la masa del vehículo con su conductor y, en su caso, pasajeros.
B. A la masa de la carga.
C. A la masa del vehículo en vacío.
D. A la masa del vehículo con carga.--> todo esto en bloque seria "Question"

RESPUESTA: C --> Esto seria la extensión "Answer"

NORMA: RD 2822/1998 14 --> Esto "Norma"

En total 4 extensiones para la Base de datos.

Mi gran duda es esa como separar los strings del txt , sobre todo el referente a "Question" que son 5 lineas en concreto para poder incluirlos en la BD.

Si alguien quiere ver el texto con todo el contenido:

Código: Seleccionar todo

http://www.multiupload.com/AIX80GAQ30
Si todas las preguntas tienen el mismo formato, usa textfile read to table y delimitedstring to table

file[1]->delimitedstringtotable(file[1],":")->delimited[2]->"6"
file[2]->"¿...?"
file[4]->A
..
..
..

Es muy sencillo la verdad
Por cierto Rafa, he encontrado la manera de hacer variable variables en lua, y es d lo mas sencillo, solo hay que trabajar con el _enviroment de lua, en vez de hacerlo con el juego declarado por setfenv(..)

_G["capullin"]="hola"
Dialog.Message('',capullin) --muestra "hola"

usa _G que es la tabla de entorno como una tabla donde se agregan todas las referencias

Aqui siempre hay cosas interesantes http://www.lua.org/manual/5.1/manual.html
string=[[COD: 6
¿A qué es equivalente la tara de un vehículo?

A. A la masa del vehículo con su conductor y, en su caso, pasajeros.
B. A la masa de la carga.
C. A la masa del vehículo en vacío.
D. A la masa del vehículo con carga.

RESPUESTA: C
NORMA: RD 2822/1998 14
]]

tb = String.DelimitedToTable(string, "\n");
tb2 = String.DelimitedToTable(tb[1], ": ");
tb3 = String.DelimitedToTable(tb[9], ": ");
tb4 = String.DelimitedToTable(tb[10], ": ");

cod=tb2[2]
pregunta=tb[2]
respuesta1=tb[4]
respuesta2=tb[5]
respuesta3=tb[6]
respuesta4=tb[7]
correcta=tb3[2]
norma=tb4[2]

Dialog.Message(cod,pregunta.."\n\n"..respuesta1 .."\n"..respuesta2 .."\n"..respuesta3 .."\n"..respuesta4 .."\n\n".."Correcta: "..correcta.." Norma: "..norma)