[NDS] Infrormación sobre C++

Hola!.

Quiero leer un archivo de texto desde FAT y en con los datos que son leidos, quiero que se ejecute una funcion dentro del codgio ya programado.

El archivo de texto tiene muchas lineas como esta:
circulo (0,64,,CR1_Sprite,AROR_Sprite,112,48);

Yo se que no puedo mandar toda esa linea al programa, porque tendria que estar compilado antes, pero quiero saber si hay alguna otra forma de mandar esta misma informacion al programa, y que pueda hacer la funcion.

Tengo la idea de que podria poner la funcion en el archivo de texto como:
c,0,649,CR1_Sprite,AROR_Sprite,112,48;

Y podria usar un fseek o algo parecido para leer cada parámetro y asignarlo de alguna forma a unas variables dentro del codigo. Y cuando termina de leer toda la linea, ejecutar la funcion.

Pero no se bien que es lo que hago al intentar leer el archivo. Y no se como asignar cada atributo a una variable en especifico.

Todas las funciones tienen el mismo formato, aunque algunas tienen mas numero que otros (espero que eso no afecte demasiado).

¿Alguna idea de como hacer esto?

¡Gracias!
Tendrías que hacer una función que te "tokenize" (no me sale el palabro en español) y luego otra función que busque qué "comando" vas a ejecutar (en este caso "circulo"), y que ejecute lo que haga ese comando. Esto lo puedes implementar con un case (aunque no recuerdo si case puede discriminar cadenas... creo que no :s) o a base de else if, con strcmp.

Por ejemplo: tienes tu linea "circulo (0,64,,CR1_Sprite,AROR_Sprite,112,48);". Al buscar qué "comando" es, el programa detecta que es círculo, que tiene 6 parámetros. Pues el tokenize parametrizaría 6 parámetros, y se llamaría al código de "comando" con esos parámetros. No se si me explico bien :s
Entiendo lo del swith case, ¿pero como funciona lo de los tokens?

Gracias

edit: ok, ya encontré que es el token, pero no se bien como aplicarlo...
odbo escribió:Tendrías que hacer una función que te "tokenize" (no me sale el palabro en español) y luego otra función que busque qué "comando" vas a ejecutar (en este caso "circulo"), y que ejecute lo que haga ese comando. Esto lo puedes implementar con un case (aunque no recuerdo si case puede discriminar cadenas... creo que no :s) o a base de else if, con strcmp.

Por ejemplo: tienes tu linea "circulo (0,64,,CR1_Sprite,AROR_Sprite,112,48);". Al buscar qué "comando" es, el programa detecta que es círculo, que tiene 6 parámetros. Pues el tokenize parametrizaría 6 parámetros, y se llamaría al código de "comando" con esos parámetros. No se si me explico bien :s


tiene que hacer un interprete de comandos. tiene que usar comparadores de cadena, cortar las cadenas por los espacios, y ser capaz de leer desde el interior, hasta afuera (por aquello de leer correctamente posibles parametros anidados).
Y el switch, es una de las cosas a usar entre muchas otras, sip. jeje.

Solamente tienes que leer el fichero como si de cualquier fichero se tratase, e ir interpretando todo.

Lo mejor es que hagas uan estructura real para "scriptado" de acciones, y así te será mucho más facil la cosa. Solo tendrás que preocuparte de ver primero el comando, y luego sus 3 argumentos de 5 posibles de maximo (por poner un ejemplo).
shadow land escribió:
tiene que hacer un interprete de comandos.

Dicho de forma más comprensible jajaja
4 respuestas