• Jueves 14 de Noviembre de 2024, 17:17

Autor Tema:  Capturar Los Datos  (Leído 1948 veces)

_Cris_

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Capturar Los Datos
« en: Miércoles 7 de Marzo de 2007, 13:48 »
0
Hola chicos, tengo un fichero de datos con el siguiente formato:


Citar
Nombre_variable1<tabulador>(min<espacio>a<max>)<retorno_de_carro>
.
.
.
Nombre_variablen<tabulador>(min<espacio>a<max>)<retorno_de_carro><retorno _de_carro>

(A partir de aquí los datos propiamente dichos para n variables)
1
.
.
.
N

Me gustaría obtener los nombres de las variables y el intervalo (max-min) de cada variable para que al introducir nuevos datos sólo permita aquellos dentro del rango especificado. También los datos de cada registro.

¿Cómo podría hacerlo?

Gracias.

SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Capturar Los Datos
« Respuesta #1 en: Miércoles 7 de Marzo de 2007, 15:43 »
0
Hola existe una clase gratis que te puede ayudar a hacer esto y se llama stringtokenizer.

Es un parser generico que te permite extraer cadenas de caracteres de Archivos(Ficheros).. dandole un Token.

Un Token puede ser cualquier caracter que uses para la separacion;

ejemplo:


cadena1 | cadena2 | cadena3- subcadena1-subcadena2

"|" y "-" son los Token's que diveiden las cadenas.


espero y te sirva
Inside the code

_Cris_

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Capturar Los Datos
« Respuesta #2 en: Miércoles 7 de Marzo de 2007, 22:42 »
0
No entiedo a que te refieres con clase. Eso me suena más a C++. Yo utilizo C.

_Cris_

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Capturar Los Datos
« Respuesta #3 en: Jueves 8 de Marzo de 2007, 15:15 »
0
¿Se podría hacer con fgets que lee líneas? Si es así ¿cómo hago para que me coja los intervalos?

SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Capturar Los Datos
« Respuesta #4 en: Jueves 8 de Marzo de 2007, 15:43 »
0
Lo quieres con c ... pues tambien


http://www.koders.com/c/fidF4F66D79091AFA1...8EB2D3CE4F.aspx

de seguro te sirve
Inside the code

_Cris_

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Capturar Los Datos
« Respuesta #5 en: Jueves 8 de Marzo de 2007, 16:58 »
0
Cita de: "SteelX"
Lo quieres con c ... pues tambien


http://www.koders.com/c/fidF4F66D79091AFA1...8EB2D3CE4F.aspx

de seguro te sirve

Y algo más sencillito no hay, porque tela con el asunto.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Capturar Los Datos
« Respuesta #6 en: Jueves 8 de Marzo de 2007, 23:54 »
0
Pues las funciones que te han comentado deben hacer más fácil el trabajo (se supone que para ello son :P). Ahora, lo básico serían las funciones:

fopen
fgets
fread
strtok
strcpy

Abres el archivo con fopen, lees una línea completa con fgets, aquí puedes tomar diferentes caminos: separar con strtok para quedarte primero con la parte hasta el tabulador, luego separar por espacios. O tú mismo recorrer la cadena hasta encontrar el tabulador, copiar lo recorrido, ahora recorrer hasta encontrar el espacio, copiar nuevamente y repetir una vez más.

Suerte,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

_Cris_

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Capturar Los Datos
« Respuesta #7 en: Viernes 9 de Marzo de 2007, 00:50 »
0
Hola.

He estado buscando y he encontrado la función strchr que localiza el primer carácter de una cadena.

La idea sería apuntar al caracter "(" anterior al mínimo para poder capturarlo pero se me escapa como hacerlo. Y luego con el máximo.

Con este código leo las líneas hasta que el fichero se acaba.

Código: Text
  1. #include &#60;stdio.h&#62;
  2. #include &#60;stdlib.h&#62;
  3.  
  4. int main()
  5.    {
  6.    FILE *fichero;
  7.    char linea[100];
  8.  
  9.    fichero=fopen(&#34;datos.txt&#34;,&#34;r&#34;);
  10.    if (fichero==NULL)
  11.      {
  12.      printf( &#34;No se puede abrir el fichero.&#092;n&#34; );
  13.      exit( 1 );
  14.      }
  15.    printf( &#34;Contenido del fichero:&#092;n&#34; );
  16.    fgets(linea,100,fichero);
  17.    while (feof(fichero)==0)
  18.        {
  19.        printf( &#34;%s&#34;,linea );
  20.        fgets(linea,100,fichero);
  21.        }
  22.    if (fclose(fichero)!=0)
  23.      printf( &#34;Problemas al cerrar el fichero&#092;n&#34; );
  24.    }
  25.