Discussion:
programa de realice un analisis lexicografico
(demasiado antiguo para responder)
Gwhite
2006-02-27 19:08:50 UTC
Permalink
Hola todos... soy nuefvo en esto... me inscibi sinceramente por que
tengo una duda... necesito crear un software el cual trabaje con
archivos planos (.txt), basicamnete lo que debe hacer eeste programa
es leer una palabra por consola (sencillo) y ir al archivo plano (en el
archivo plano tengo las letras en minuscula a,b, c ...z, en mayuscula
A, B, C, ...Z, los numeros 0,1, 2, 3 ... 9, y los simbolos ?, %, &,
#... etc, clasificados por niveles) y comparar lo que escribi la
palabra escrita e indicarme cada caracter en que nivel se encuenta.
ejm:

P a L a b r a : 2 5
Nivel: 2 1 2 1 1 1 1 4 3 3

las minusculas las clasifico en nivel 1, mayusculas 2 y numericos 3.. y
asi sucesivamente
ROC
2006-02-27 20:58:25 UTC
Permalink
Hola Gwhite:

Exactamente, cuál es tu pregunta?

(Para empezar te diré que es posible que tengas problemas con las vocales
acentuadas, la ñÑ y la Çç (si la utilizas),
pues las funciones - de hecho "macros"- standard "isupper()",
"toupper()"... y sus simétricas no suelen funcionar bien con estos
caracteres ).

Saludos:

ROC
Post by Gwhite
Hola todos... soy nuefvo en esto... me inscibi sinceramente por que
tengo una duda... necesito crear un software el cual trabaje con
archivos planos (.txt), basicamnete lo que debe hacer eeste programa
es leer una palabra por consola (sencillo) y ir al archivo plano (en el
archivo plano tengo las letras en minuscula a,b, c ...z, en mayuscula
A, B, C, ...Z, los numeros 0,1, 2, 3 ... 9, y los simbolos ?, %, &,
#... etc, clasificados por niveles) y comparar lo que escribi la
palabra escrita e indicarme cada caracter en que nivel se encuenta.
P a L a b r a : 2 5
Nivel: 2 1 2 1 1 1 1 4 3 3
las minusculas las clasifico en nivel 1, mayusculas 2 y numericos 3.. y
asi sucesivamente
Gwhite
2006-02-28 18:59:17 UTC
Permalink
Hola, que pena si me doy cuenta que esta un poco confusa mi pregunta,
lo que necesito es, saber como en leguage C o C++ puedo trabajar o
jalar informacion de archovis planos (.txt), no toda la informacion del
archivo pero si siertos datos, que tenga en un archivo.

de antemano muchas gracias por la colaboracion.

nota: si sirve lo que necesito es comparar una informacion de un
archivo plano con lo que se ingresa por consola en un programa en C
ROC
2006-02-28 20:46:12 UTC
Permalink
Hola otra vez:
Vamos allá.

Me imagino que lo que quieres saber es cómo se lee un archivo.txt del disco.
De hecho, se suele leer línea a línea pasando cada línea del disco a una
cadena (que nosotros llamaremos "buffer") que podrás manejar y comparar con
lo que quieras.

Para no complicarnos, vamos a utilizar C con el sistema standard de archivos
ANSI.
Necesitarás incluir en la cabecera del programa:

#include <stdio.h>

Para manejar el archivo necesitarás declarar una variable puntero tipo FILE
y luego abrirlo con "fopen()". Esta función devuelve NULL (un 0 long) si no
consigue abrir el archivo del disco.
Después lo leeremos linea a linea con "fgets()" y la cargaremos a "buffer".
Aquí tienes que insertar el código de comparación de TuCadena con la cadena
"buffer".

La función "fgets()" lee del fichero del disco un número (que nosotros
indicamos) de bytes determinados O hasta que encuentra un carácter de fin de
línea ('\n'), que incluye en la lectura y los coloca en el buffer (que
nosotros le damos) y le añade un cero ('\0') de fin de cadena. Devuelve los
bytes eídos.

Esta cadena "buffer" puedes compararla después con la que tu tengas.


--------------------------------------------
#include <stdio.h>

void main()
{
FILE *Archivo; // variable de archivo
char buffer[200]; // aquí cargaremos línea a línea el
archivo.txt del disco.
int bytesleidos;

//abrimos el archivo para leer o acabamos el programa si no podemos
abrirlo.

if((Archivo = fopen("NombreDelArchivoDelDisco.txt, "r")) == NULL)
printf("ERROR abriendo el archivo\n");
return;
} // fin de if

// ahora iremos leyendo el archivo línea a línea hasta el final y la
copiaremos
// en "buffer".

while(!feof(Archivo)) // hasta el final del archivo
{
bytesleidos = fgets(buffer, 200, Archivo); // copiamos una línea a buffer
buffer[bytesleidos] = 0; //quitamos el carácter '\n' del final.

//--------------------------------
aquí coloca el código de comparación de TuCadena con cada línea
del archivo.txt que se irá cargando en "buffer".
(realmente como si comparases dos cadenas)
//--------------------------------

} //fin de while

//acabado el proceso, cerramos el archivo.

fclose(Archivo);

} //fin de main
------------------------------------------

No sé si es esto lo que preguntas.
Espero haberte ayudado en algo.

Atentamente
ROC

Loading...