Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [unix c] ricerca all'interno di un file

    Ciao ragazzi

    Dovrei ricercare all'interno di un file txt diviso logicamente in 3 campi ( due lettere un numero e due lettere)

    esempio

    aa 100 ss
    bb 30 kk
    fg 1 ss
    hh 10 kk

    io devo cercare le righe del file che hanno il numero > che inserisco

    esempio
    inserisco 40 nel mio programma e mi deve visualizzare solo aa 100 ss perchè è l'unico numero maggiore di 40

    mi date qualche suggerimento?

  2. #2
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    e il codice per darti qualche suggerimento dov'è?

  3. #3
    non ho ancora cominciato mi mancano le idee

    esiste una funzione di ricerca direttamnte sul file di testo?
    oppure devo mettere tutto in un vettore? oppure liste a puntatori?

    devo fare qualcosa di semplice non troppo complesso perchè non ho molto tempo

    ho bisogno di idee

  4. #4
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    io direi che hai bisogno di studiare

  5. #5

    soluzione bash

    questo script dovrebbe fare al caso tuo

    ----------------------------------------------------------------
    #!/bin/bash

    count=1;
    nomeFile="file_name"

    for riga in `cat $nomeFile|awk {'print $2'}`
    do
    if [ $riga -gt $1 ]; then
    let count=count+1
    fi
    done

    echo `head -$count $nomeFile |tail -1`

    ------------------------------------------------------------------
    by zampa

  6. #6
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    con le mie parole intendevo che qui nessuno fa il lavoro che dovresti fare tu, un forum non funziona così. Oltretutto dire che non hai idee per una cosa così elementare vuol dire prendere in giro tutti noi, perchè è chiaro che probabilmente non sapresti dove mettere mano.

    ti ho buttato giù due righe per aprire il file e scorrerlo col formato che hai postato "stringa int stringa"
    il resto è più che banale, provaci, se hai problemi siamo qua
    codice:
    int main (){
        FILE* file=fopen("dati","r");
        char dat1[32],dat3[32];
        int dat2;
        while(EOF!=fscanf(file,"%s %d %s", &dat1,&dat2,&dat3))
        printf("\n-%s\n-%d\n-%s\n", dat1,dat2,dat3);
        getchar();
        }

  7. #7

    ops

    non avevo letto che ti serviva in c, bah semplice
    da quello che ho capito il file ha una struttura definita stringa numero stringa
    crea una struttura

    struct t{
    char first[50];
    int number;
    char second[50]
    };

    struct t pazienti[DIM];

    fread(t,sizeof(struct t),DIM,fopen("nome file","rb"));

    by zampa

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: ops

    Originariamente inviato da donato radatti
    non avevo letto che ti serviva in c
    Non hai neanche letto la parte in cui dice di avere un file di testo
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9

    :D

    :-D bella
    cmq ti assicuro che la fread legge e' mette in sequenza di byte, cosi anche lo script in bash

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.