Selezione multipla GUI e salvataggio

di il
4 risposte

Selezione multipla GUI e salvataggio

Salve a tutti,

sto facendo una GUI per effettuare il salvataggio multiplo di file ed effettuare il salvataggio di questi in una struttura.
In pratica vorrei poter pigiare un tasto, effettuare il salvataggio multiplo di file .txt e salvare tutti questi dati in una struttura.
Ho usato, questa linea di codice:
[FileName_FM,PathName_FM,FilterIndex_FM] = uigetfile('*.txt*','MultiSelect','on');

Ma poi non ho idee per come effettuare il salvataggio. Qualcuno ha idee?

Vi ringrazio tantissimo
Buona programmazione a tutti

4 Risposte

  • Re: Selezione multipla GUI e salvataggio

    La domanda non è molto chiara:

    Nirvana272 ha scritto:


    In pratica vorrei poter pigiare un tasto, effettuare il salvataggio multiplo di file .txt e salvare tutti questi dati in una struttura.
    Ho usato, questa linea di codice:
    [FileName_FM,PathName_FM,FilterIndex_FM] = uigetfile('*.txt*','MultiSelect','on');
    Cosa si intende con "salvataggio multiplo"? Ci sono più (più di uno) files da salvare?

    La funzione uigetfile (come anche e altre, simili, uiputfile, uigetdir) ritornano solo il nome (ed eventualmente il path) dei files / directoty selezionati, per effettuare l'effettiva apertura / salvataggio occorre usare funzioni specifiche ad es. load, save) alle quali passare, in input i nomi dei files / directory generati / selezionati con le funzioni uigetfile, uiputfile, uigetdir.

    La funzione uigetfile viene usata per selezionare dei files, ma solo tra quelli già esistenti (è l'analogo della finestra "Open").

    Per definire il nome di un file da salvare è meglio usare "uiputfile" che, però consente di selezionare solo un file alla volta; in caso si debbano gestire più files è meglio usare uigetdir che ritorna il nome di una directory e "costruire" i nomi dei files come stringa, da aggiungere al path.

    La seconda parte della domanda ("effettuare il salvataggio di questi in una struttura") è altrettanto poco chiara: cosa si intende con "salvare dei files in una struttura"?

  • Re: Selezione multipla GUI e salvataggio

    Sono riuscita a risolvere stamani
    [fileFM,pathFM]=uigetfile('*.txt','Multiselect','on');
    
    % Codice aggiunto per gestire la selezione del tasto "Annulla"
    
    if(isequal(fileFM,0))
       disp('Selezione files annullata dall''utente')
    else
       n=length(fileFM);
       for i=1:n
    
    filepath=fullfile(pathFM,fileFM{1,i});
    DataFM(i)=importdata(filepath);
    Data_FM=getfield(DataFM(i),'data');
    
     dataFM_struct(i).NumeroProva= i;
     dataFM_struct(i).prova= Data_FM;
     
     ax= dataFM_struct(i).prova(:,2);
     Ax=((ax-2048)/1024)*9.8;
    
     ay= dataFM_struct(i).prova(:,3);
     Ay=((ay-2048)/1024)*9.8;
     
     az= dataFM_struct(i).prova(:,4);
     Az=((az-2048)/1024)*9.8;
     
     dataFM_struct(i).Accelerazioni= [Ax Ay Az];
     
     P1= dataFM_struct(i).prova(:,5);
     P2= dataFM_struct(i).prova(:,6);
     dataFM_struct(i).Pressioni= [P1 P2];
     
     
       end
    end
    
    
    Conosci per caso un modo per effettuare l'import di tutti i file txt contenuti in un folder?
  • Re: Selezione multipla GUI e salvataggio

    Per importare tutti i files di uno specifico tipo (".txt" - nel caso della domanda) presenti in una directory si può procedere così:

    [*] definizione della directory:
    la si può definire "manualmente", ad esempio:
    dir_name='d:\M_DIR\';
    oppure si può utilizzare la funzione "uigetdir" che apre l'interfaccia per la selezione della directory; alla funzione uigetdir si può assegnare una directory "di partenza". Es.
    dir_name=uigetdir('d:\m_dir');
    dir_name=[dir_name '\']
    (bisogna inserire opportuni controlli per verificare se l'utente ha selezionato una directory o se ha premuto il tasto "Annulla").

    [*] una volta definita (con uno dei due metodi sopra descritti) la directory, si può usare la funzione "dir" per ottenere la lista dei files.
    La funzione dir opera esattamente come il comando DOS dir ed è possibile specificare il nome o anche solo il tip dei file usando "*".
    Nel caso della domanda, per identificare tutti i files ".txt" (ma si potrebbero cercare, per esempio, i files "sim*.txt"):
    file_list=dir([dir_name '\' '*.txt'])
    la funzione dir ritorna l'elenco dei files trovati in un vettore di strutture; il nome del file è memorizzato nel campo "name"

    [*] A questo punto, si possono importare i file tramite un loop che cicli sugli elementi del vettore struttura usando, ad esempio la funzione "load" o la funzione "importdata":
    n_files=length(file_list);
    
    for i=1:n_files
       load([dir_name file_list(i).name])
    %    a=importdata([dir_name file_list(i).name])
    end
    
    Hope this helps.
  • Re: Selezione multipla GUI e salvataggio

    Grazie mille
    Ho usato la soluzione con uigetdir e funziona perfettamente
Devi accedere o registrarti per scrivere nel forum
4 risposte