Lettura file di un database

di il
50 risposte

Lettura file di un database

Salve a tutti ho un esercizio che mi chiede di leggere un file .db sul mio libro di testo parla solo di file .txt o .dat, c'è qualche differenza tra un file di testo e un file database o li posso usare in modo uguale? grazie mille

50 Risposte

  • Re: Lettura file di un database

    Quasi sicuramente il file ha un formato binario e quindi, se non hai le specifiche, e' leggibile, ma incomprensibile.

    Qualunque file puo' essere letto, ma capire che cosa c'e' scritto e' tutta un'altra storia.
  • Re: Lettura file di un database

    Il problema effettivo è che io ho questo file .db e devo analizzare i vari record ma come faccio a fare una distinzione tra i campi? devo dichiararli nel main?
    Cioè i campi sono: nome film, num sala, orario, posti disponibili e prezzo ora come devo fare? devo dichiarare char nome[] e cosi via o devo dichiarare una matrice? spero di essere stato chiaro
  • Re: Lettura file di un database

    Probabilmente ogni record si riferisce ai campi di una struttura che, in genere, viene fornita con il testo dell'esercizio.
  • Re: Lettura file di un database

    Ciao oregon l'esercizio mi chiede questo

    Scrivere un programma cinema che, dato undatabase che memorizza i film
    in programmazione in un cinema multisala, permette di esaminare il database come segue. Il
    programma può essere usato in due modi: con 1 parametro o con 2 parametri, da linea di
    comando.

    Con 1 parametro, prende in input da linea di comando una stringa che specifica un
    orario nel formato hh:mm. Il programma, esaminando il database programmazione.db,/stampa
    le informazioni (titolo, sala, orario, posti disponibili e prezzo) relative a tutti i film che iniziano
    dall’orario specificato fino all’ora successiva, a condizione che ci siano ancora posti
    disponibili.

    Con 2 parametri, prende in input da linea di comando il titolo di un film ed un prezzo
    massimo che l’utente è disposto a pagare per vedere il film. Il programma, esaminando il
    database programmazione.db,/stampa le informazioni (titolo, sala, orario, posti disponibili e
    prezzo) relative a tutte le proiezioni del film per le quali il prezzo del biglietto è minore del
    prezzo massimo specificato sempre a condizione che ci siano ancora posti disponibili.

    ed il file .db è cosi
    Sole_a_catinelle 1 18:30 125 5.50
    Rambo 1 20:30 0 6.50
    Fuga_per_la_vittoria 1 22:30 123 5.50
    Full_metal_jacket 2 18:45 100 5.50
    Ritorno_al_futuro 2 20:45 96 6.50
    Non_ci_resta_che_piangere 2 22:45 98 5.50
    Rambo 3 18:30 50 5.50
    Blade_runner 3 20:30 45 7.50
    Rambo 3 22:30 23 5.50

    dici che devo usare una struttura?
  • Re: Lettura file di un database

    Ahahhhh: ma allora il formato ti e' descritto nell'esercizio!!!

    Allora e' un BANALE file di testo, che leggi come QUALUNQUE file di testo.

    E l'estensione e' solo un mnemonico per ricordarti che e' il file relativo ad un database, cioe' ad un insieme di informazioni!

    Un modo semplice per processare questi tipi di file e'

    1) leggere una riga alla volta e convertirla in una stringa
    2) processare la stringa
    3) continuare fino a che non si e' arrivati alla fine del file!
  • Re: Lettura file di un database

    Non hai già un file .db da leggere ma un "esempio" di file dati (.db o .txt non importa) che PUO' ANCHE ESSERE di tipo testo.

    Quindi puoi usare quello che conosci per CREARE il file e scriverci dentro, oppure, fai un copia incolla di quei dati in un editor e li inserisci in un file di testo (l'estensione .db non importa).

    Per la gestione interna dei dati, ma indipendentemente dal fatto del tipo di file utilizzato, puoi utilizzare una struttura (anche se non è necessario perché devi solo LEGGERE dal file per cercare quello che ti serve).
  • Re: Lettura file di un database

    Grazie mille ad entrambi ora provo a farlo
  • Re: Lettura file di un database

    Rieccomi qui ho creato il programma e riesco a stampare tutte le righe, ora non so più come muovermi, cioè inserisco un if(argc==2) e l'argomento argv[1] deve essere l'orario come faccio a fare ciò? se io inserisco ./a.out giovanni o ./a.out 18:30 è lo stesso invece no, come da traccia
  • Re: Lettura file di un database

    La traccia parla di uno o due parametri. Controlla il valore di argc e opera di conseguenza.
  • Re: Lettura file di un database

    Il problema non è quello ho fatto
    
    if(argc==2)
    {
    //stampa tutte le righe che l'orario è = ad argv[1]
    }
    
    questo mi manca non riesco a capire come fare a verificare l'argomento di argv[1] con la colonna degli orari
    
    if(argc==2)
       {  
       while(!feof(fp))
       {
          fgets(parole, 50, fp);
          printf("%s", parole);
       }
    
  • Re: Lettura file di un database

    Ho scritto questo ma giustamente non funziona, potete aiutarmi? grazie
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
       char parole[50];
       int i=0;
       char nome[50], sala[50], orario[50], posti[50], prezzo[50];
       
       
       FILE *fp;
    
       fp=fopen("programmazione.db", "r");
    
       if(fp==NULL)
       {
          printf("Impossibile aprire il file\n");
          exit(0);
       }
    
       if(argc==2)
       {
       
       while(!feof(fp))
       {
          fgets(parole, 50, fp);
          sscanf(parole, "%s %s %s %s %s", nome, sala, orario, posti, prezzo);
          if(orario==argv[1])
          printf("%s", parole);
       }
       }
       else
       {
          printf("Parametro inesistente\n");
       }
    
       fclose(fp);
    
     return 0;
    }
    
    
  • Re: Lettura file di un database

    No, non hai capito ... argc non è sempre 2 nei due casi ...
  • Re: Lettura file di un database

    oregon ha scritto:


    No, non hai capito ... argc non è sempre 2 nei due casi ...
    si lo so nel primo caso è 2 nel secondo caso è 3 come faccio a stampare le righe che rispettano la prima condizione, cioè inserisco l'orario e mi stampa tutti i film che proiettano a quell'ora?
  • Re: Lettura file di un database

    Non capisco la domanda. Leggi il file riga per riga e confronti l'orario con il valore fornito in input.
Devi accedere o registrarti per scrivere nel forum
50 risposte