C/Visual C - Tratamiento y Organizacion de archivo txt

 
Vista:

Tratamiento y Organizacion de archivo txt

Publicado por Juan (2 intervenciones) el 29/09/2004 13:13:35
Hola, en primer lugar me llamo Juan, tengo 22 años, estoy diseñando el soft de una tienda de informatica que me he montado, tengo un distribuidor q me manda su lista de precios en xls, y mal ordenada, y por mas que insisto es lo unico q me pueden mandar.

El caso es que mediante una macro he conseguido 'ordenarlo', pero aun asi no queda como yo lo necesito. lo he dejado asi:

2;Categoria
1;Subcategoria
0;Articulo;Precio

Este esquema (2,1,0) viene dado por el proveedor, y es su forma de identificar que es lo que contiene el campo de la derecha, hay mucha basura, y espacios en blanco, pero eso por ahora no me interesa.

Yo he exportado de xls, al formato txt q he colocado arriba, separado por ' ; ', pero ahora, para importarlo desde una base de datos, necesito que cada '0' Articulo tenga delante su '1' Subcategoria y '2' Categoria.

Pensaba en hacerlo en C+ pero para empezar no he tocado nunca archivos y no se como hacerlo, ademas no se moverme por ellos, y ni mucho menos organizar todo esto, hay alguien que me pueda ayudar?

No se si he explicado bien, el caso es que el programa deberia leer el txt, y buscar el ‘2’ como primer carácter de una linea, almacenarlo en una variable, y si después del ‘2’ viene un ‘1’, almacenarlo en otra, cuando encuentre un ‘0’ que escriba la linea “Categoría;Subcategoría;Articulo;Precio”, esto puede ser bien en el mismo archivo, o mejor en otro archivo, para evitar tocar la fuente de los datos.

Por supuesto si dentro de un ‘2’ encontrara varios ‘1’ deberia asignarle a cada uno el suyo. La lista se supone que esta correctamente organizada, y si surgen fallos ya los arreglare, pero el algoritmo para todo esto…

NO TENGO NI IDEA DE CÓMO HACERLO!!

Gracias de antemano.
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

RE:Tratamiento y Organizacion de archivo txt 1/2

Publicado por fernando.gomez (1603 intervenciones) el 29/09/2004 18:49:04
Bueno, C++ incluye muchas funciones estándares para manipular texto. Por ejemplo, strcmp, strstr, strcpy y algunas de memoria que te servirían, como memchr, memset, memcpy. Además, también puedes hacer la comparación directamente con caracteres. Por ejemplo, veamos el siguiente código:

char szInfo[STR_SIZE]; // STR_SIZE definido en otra parte
char szFirstVar[STR_SIZE];
char szSecondVar[STR_SIZE];
ifstream* pStrmFile;
bool bFirstVar;
bool bSecondVar;

bFirstVar = false;
bSecondVar = false;
memset(szFirstVar, 0, sizeof(szFirstVar));
memset(szSecondVar, 0, sizeof(szSecondVar));
memset(szInfo, 0, sizeof(szInfo));
pStrmFile = NULL;

pStrmFile = new ifstream(FILE_PATH);
*pStrmFile >> szInfo;
delete pStrmFile;

bFirstVar = strstr(szInfo, "2") != NULL;
bSecondVar = bFirstVar && strstr(szInfo + 1, "1");
if (bFirstVar)
{
if (bSecondVar)
{
strcpy(szFirstVar, szInfo + 2);
}
else
{
strcpy(szSecondVar, szInfo + 2);
}
}
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

RE:Tratamiento y Organizacion de archivo txt 2/2

Publicado por fernando.gomez (1603 intervenciones) el 29/09/2004 18:49:39

Veamos. El primer párrafo declara variables y el segundo las inicializa. El tercer párrafo crea un objeto ifstream. Esta clase deriva de istream y se especializa en la recolección de datos desde un archivo como sistema de entrada. Tiene el operador de desplazamiento de bits sobrecargado, con lo cuál recupera el primer valor dentro del archivo (hasta encontrar un espacio blanco) y se lo asigna a una variable. Inmediatamente después, destruimos el archivo.

La primera línea del siguiente párrafo verifica si existe un 2 dentro de la variable. La segunda, verifica si hay un 1 después del 2. Así, las siguientes líneas simplemente determinan, en base a lo anterior, qué variable se quedará con la información, después de los primeros dos caracteres.

En cualquier caso, siempre puedes consultar www.msdn.microsoft.com, por ejemplo. Saludos.
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

RE:Tratamiento y Organizacion de archivo txt 2/2

Publicado por Juan Pinto Moreno (2 intervenciones) el 30/09/2004 09:23:12
Wow, muchas gracias por la rapida ayuda!!, me ha ayudado bastante a despejar dudas, me he reido de mi mismo al no acordarme del strcpy, etc... es q acabo de empezar las clases y aun estoy bastante OFF. El caso es q ya me han dado bastante caña con C y me ha despistado el tema de ficheros.

Gracias por la ayuda.
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