C/Visual C - autogenerar código a partir de dos listas

 
Vista:
sin imagen de perfil

autogenerar código a partir de dos listas

Publicado por Volsetes (5 intervenciones) el 17/05/2017 16:45:36
Hola gente!! A ver si me consigo explicar porque mi problema básicamente es que no sé cómo buscar la posible solución. (Lo he puesto en programación c++ porque creo que desde el comando print se podría, pero claro, a saber..)

El caso es que tengo una lista de compañeros, unas cualidades y un texto. Y quiero que se me genere un archivo (en un recuadro dentro del mismo programa también me serviría) con el texto que es para todos igual.

Ejemplo:
Nombres: Juan, Ramón y José.

Cualidades: guapo y feo.

Texto: Hola (NOMBRE), se te ve muy (CUALIDAD), ja, ja.

Hola Juan, se te ve muy guapo, ja, ja.
Hola Juan, se te ve muy feo, ja, ja.
Hola José, se te ve muy guapo, ja, ja.
Hola José, se te ve muy feo, ja, ja.
Hola Ramón, se te ve muy guapo, ja, ja.
Hola Ramón, se te ve muy feo, ja, ja.

Ya digo que mi problema es que no sé cómo buscar en el google algo parecido a lo que quiero hacer, no me sé las palabras clave. Así que con que me dijeráis qué es lo que busco y cómo buscarlo sería suficiente. Aún así, sí me dais algún consejo como que, por ejemplo, eso en el excel o en html sería más fácil hacer, pues bien recibidos seréis!

MUCHAS GRACIASSSSS!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

autogenerar código a partir de dos listas

Publicado por agustin (272 intervenciones) el 17/05/2017 17:56:12
Pues tienes que tener muy claro lo que quieres conseguir y que lenguaje dominas. En c++builder, Visual C++, C#, python, Visual Basic... en todos esos seria muy sencillo ya que lo que quieres hacer se llama concatenar strings y en cualquiera de ellas usando gui podrías mostrarlo en el programa. En C++builder usas el TMemo o un TListView y desde ellos puedes crear un archivo con el contenido muy fácilmente. En Excel usando vba también es muy sencillo. Solo busca cómo concatenar cadenas en el lenguaje que prefieras usar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

autogenerar código a partir de dos listas

Publicado por Narcís (5 intervenciones) el 17/05/2017 18:05:00
Vale, pues muchas gracias, voy a buscar cómo concatenar!!
Y si me recomiendas algún lenguaje en concreto, mejor.

Gracias, agustín!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

autogenerar código a partir de dos listas

Publicado por agustin (272 intervenciones) el 17/05/2017 18:33:00
En c++builder usando un TMemo que llamaría memoCadenas seria algo asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Creo la lista de nombres
TStringList *nombre = new TStringList;
nombre->Add ("Juan");
nombre->Add ("Ramón");
nombre->Add ("José");
 
//Creo la lista de cualidades
TStringList *cualidad  = new TStringList;
cualidad->Add ("guapo");
cualidad->Add ("feo");
 
for (int i=0;i<nombre->Count;i++)
	for (int j=0;j<cualidad->Count;j++)
		memoCadenas->Add ("Hola " + nombre->Strings[i] + ", se te ve muy " + cualidad->Strings[j] + ", ja, ja.");
 
//Guardo la lista de cadenas en un archivo
memoCadenas->SaveToFile ("fichero.txt");
 
//Libero la memoria ocupada por las listas
delete nombre;
delete cualidad;
Se puede hacer de muchas formas y esta es una.
Si quieres algo rápido y fácil te recomiendo visual Basic que es prácticamente cómo te puse pero aun más fácil ya que c++builder es c++ y es más complicado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

autogenerar código a partir de dos listas

Publicado por Narcís (5 intervenciones) el 17/05/2017 19:10:53
uau!! Muchísimas gracias, de verdad! Es que soy novatillo y voy más perdido.. jajaj

Lo había empezado a hacer con la función concatenar del excel, pero al exportarlo no se me exportaba bien y, de todas formas estaba buscando algo más automatizado, exactamente como lo que me has pasado, con la única diferencia que la lista de nombres es demasiado larga como para ponerla 1 a 1. Me he bajado el c++builder y voy a empezar poniendo sólo algún nombre como me has enseñado

Graciasss!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

autogenerar código a partir de dos listas

Publicado por agustin (272 intervenciones) el 17/05/2017 22:25:20
Hice un pequeño proyecto algo mas elaborado por si quieres el proyecto me lo pides por privado y te lo paso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

autogenerar código a partir de dos listas

Publicado por Narcís (5 intervenciones) el 18/05/2017 21:42:10
Agustín!
No tengo el c++ builder, tengo el dev c++, así que el TStringList creo que no me funciona. Eso o que soy tan novat que no sé ponerlo.. jjaja

He conseguido avances, pero tengo dos problemas:

El primero es a la hora de inserta una lista, es decir, poner tooooodos los nombres y luego otra lista con las cualidades, que como sólo son dos pues con un char cualidad1 y otro char para la cualidad 2, pues me serviría. (en verdad tengo un fichero en excel con los nombres, supongo que se podría exportar y luego leer el fichero, cosa que además me facilitaría la faena a la hora de tener que borrar o poner más nombres)

Luego también me da eror me da error cuando inserto el
1
2
for (int i=0;i<nombre->Count;i++)
	for (int j=0;j<cualidad->Count;j++)

Me pone que i no ha sido declarada, que en std::string no hay ningún miembro que se llame 'count'...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

autogenerar código a partir de dos listas

Publicado por agustin (272 intervenciones) el 19/05/2017 07:19:01
Supongo que estas haciéndolo en C++ sin entorno gráfico. Si te instalas el borland c++builder 6 te paso el código fuente para que pruebes lo que tengo yo. Se importan dos listas desde archivos de texto y se usan máscaras en una cadena las cuales se sustituyen por las cadenas de las listas, se van añadiendo las frases obtenidas a un TMemo y al final se guarda el resultado en un archivo y todo con entorno visual.
Si no lo quieres con entorno gráfico se podría hacer totalmente portable simplemente leyendo cada archivo y haciendo lo mismo pero usando tstring. Aunque no es tan vistoso pero bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

autogenerar código a partir de dos listas

Publicado por Narcís (5 intervenciones) el 20/05/2017 17:18:46
Oye Agustín! Muchas gracias por la ayuda! Al final me he decantado por estudiar un curso VBA en Acces, ya que casi todos los datos lo tengo allí.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

autogenerar código a partir de dos listas

Publicado por agustin (272 intervenciones) el 20/05/2017 22:34:43
Access no es lo más recomendable para lo que deseas hacer. Seria mejor en Excel en todo caso o incluso en Word.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar