POSIZIONE IN FILE TESTO

di il
4 risposte

POSIZIONE IN FILE TESTO

Buonasera,
avrei una domanda..ho un file testo che contiene numeri e parole..all'interno di esso dovrei cercare un termine e ricopiare i numeri sottostanti..

4 Risposte

  • Re: POSIZIONE IN FILE TESTO

    La domanda è troppo vaga per poter tentare di dare una qualunque risposta:
    [*] qual è la struttura del file di testo?
    [*] come si identifica il termine di interesse?
    [*] come sono definiti (scritti) i numeri nel file di testo?

    Dovresti, come minimo, pubblicare un esempio (un estratto) significativo del file di testo (al limite potresti condividere il file su "DropBox" o qualcosa di simile) e le indicazioni sull'output atteso.

    Non sarebbe male se pubblicassi anche il codice che hai scritto fino a questo momento, anche se "non funziona" in modo che ti si possa dare qualche suggerimento.
  • Re: POSIZIONE IN FILE TESTO

    Buongiorno,
    allora il mio problema è: avendo un file testo ho delle righe di dati che si ripetono e che devo estrapolare..queste righe sono posizionate ogni volta nella riga sottostante quella che inizia con la parola 'parola'..quindi ho provato così e funziona..ma 'data' mi restituisce solo una riga e non tutte..

    close all
    fid=fopen('myfile.tb');

    R=textscan(fid,'%s','delimiter','\n');
    R=R{1};
    for i=1:length(R)
    idx=find(not(cellfun('isempty',strfind(R,'parola'))));
    idxx=idx+1;
    end
    fclose(fid);
    if true
    fid=fopen('myfile.tb');
    F=textscan(fid,'%s','delimiter','\n');
    K=idxx;
    for h=1:length(K)
    D=F{1}(K(h));
    dataTxt = sprintf('%s\n',D{:});
    data = textscan(dataTxt,'%f %f %f \n');
    %data=data{1}
    end
    fclose(fid);
    end
  • Re: POSIZIONE IN FILE TESTO

    Come ho scritto nella risposta precedente, senza il file di testo di input (od un sui esempio significativo) non si può verificare il codice.
    Hai provato ad eseguire il codice in modalità debugger?
    Hai verificato il valore delle variabili nel corso dell'esecuzione?

    Quello che si può dire, leggendo il codice, è che, nel secondo loop, la variabile "data" viene sovrascritta ad ogni iterazione per cui, alla fine, dovresti avere solo l'ultima serie di dati.

    Ammesso che le istruzioni precedenti funzionino (e senza il file di testo non lo si può verificare), dovresti trasformare la variabile "data" in una matrice, qualcosa del tipo
    
       data=[]
       for h=1:length(K)
          D=F{1}(K(h));
          dataTxt = sprintf('%s\n',D{:});
          data(h,:) = textscan(dataTxt,'%f %f %f \n');
          %data=data{1}
       end
    
    ma non possibile verificare la correttezza di questa soluzione.
  • Re: POSIZIONE IN FILE TESTO

    Grazie..ho risolto
Devi accedere o registrarti per scrivere nel forum
4 risposte