Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

problema con comparar caracteres de un fichero

Participa en el tema problema con comparar caracteres de un fichero en el foro Programación.
hola buenas soy nuevo en el foro y tengo una gran duda, pero para poner ...

Buscar en este tema:
 
  •  
    u54 escribió hace 8 meses
     
    ¿Mensaje inapropiado?
    #1 problema con comparar caracteres de un fichero
    hola buenas soy nuevo en el foro y tengo una gran duda, pero para poner en situacion añado mi codigo que he desarrollado en borland builder c++ 6.0:

    //---------------------------------------------------------------------------
    #pragma hdrstop
    //---------------------------------------------------------------------------
    #pragma hdrstop
    #include <math.h>
    #include "iostream.h"
    struct registro
    {
    char secuencia[50];
    int frecuencia;
    int Entropia;
    };
    //---------------------------------------------------------------------------
    #pragma argsused
    void main()
    {
    int N; int T=0; int Entropia_T=0;
    FILE *Fichero;
    char N_Fichero[50];
    cout << "Nombre del fichero: ";
    cin >> N_Fichero;
    int Bentana;
    cout << "Tamaño de la secuencia: ";
    cin >> Bentana;
    char Temp[50];
    registro vector[50];
    Fichero= fopen(N_Fichero,"rt");
    int Ventana=Bentana-1;
    char s2[3]= "fin";
    int G=0;
    while (G<50)
    {
    G=G+1;
    strcpy(vector[G].secuencia,s2);
    }
    int Tamanio=0;
    while (Tamanio<50)
    {
    cout << Ventana;
    Tamanio=Tamanio+Bentana;
    T++;
    // fgets(Temp,Ventana,Fichero);
    // N= fread(Temp,sizeof(char),Bentana,Fichero);

    int Tamanio2=0;
    while (Tamanio2<T)
    {
    Tamanio2=Tamanio2+1;
    if (strcmp(vector[Tamanio2].secuencia,s2)) // if (strcmp(0,vector[i].secuencia)) // vector[i]
    {
    strcpy(vector[Tamanio2].secuencia,Temp);
    }
    else if (strcmp(vector[Tamanio2].secuencia,Temp))
    {
    vector[Tamanio2].frecuencia++;
    }
    }
    }


    Mi problema es con el fread y el fgets pongo ambos xq es lo q he probado, la cuestion es q quiero que de un fichero txt me saque, dandole una longitud de texto, los caracteres tantos como longitud d texto.
    A ver si me explico con un ejemplo:
    si tengo la frase en el fichero: "hola que tal" y le paso una longitud de 3 carcteres me traiga en cada rutina del while "hol" primero, " qu" segundo, "e t" tercero y "al " cuarto.
    Si m pueden contestar lo antes posible se los agradeceria muchisimo.
    Saludos
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/904875-problema-con-comparar-caracteres-de-fichero.html
    | Más
  • #2 Re: problema con comparar caracteres de un fichero

    Es difícil seguir tu código porque se perdió toda la indentación, pero de entrada se ve que hay un error en la línea
    Código:
    char s2[3]= "fin";
    
    ya que "fin" tiene 4 chars ('f', 'i', 'n', '\0') y al forzarlos en un vector de 3 se pierde el '\0' del final (y por lo tanto fallan las subsiguientes strcpy, strcmp, etc.). Qué raro que el compilador no haya advertido de este error.
    Me gusta este mensaje
  • #3 Re: problema con comparar caracteres de un fichero

    Buenas, gracias por tu respuesta, y la verdad es q el compilador no ha reconocido ese error incluso hice un cout de lo que se introducia en cada vector.secuencia[] y m salia la secuencia s2 es dcir "fin", lo mas probable es que al no pasar del fgets y el fread no m muestre los errores, asi que por favor si alguien sabe como sacar de un fichero tantos caracteres como se introduzca por pantalla y luego guardar esos caracteres dentro d una variable, y que luego al empezar el bucle recoja la otra secuencia de caracteres siguientes y lo vuelva a meter en la variable para luego comparar y copiar y asi iterativamente, que lo ponga con urgencia. Muchas gracias d antemano
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 2 RESPUESTAS
  • 201 VISTAS
  • 2 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB