%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Einlesen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all%vorhandene Variablen löschen
%Variablen definieren
filenames={};%File Namen der Files, die geöffnet oder abgespeichert werden sollen
filepath={};% File Pfad der Files, die geöffnet oder abgespeichert werden sollen
Datenfiles={};%Array der einzulesenden Files
fid=0;%wird Pointer des Scanvektors
Matrix=[];%ergibt Datenmatrix. Erste Spalte Frequenzen anschliessend abwechseknd Amplitude und Phase
ScanVektor=[];%eingescante Matrix jeweils eine Zeile des txt Files
ErgebnisVektor=[];%Zwischenresultat
titel=[];%ergibt Titel Array der eingelesenen Files

[filenames,filepath] = uigetfile('*.txt', 'Dateien zum Einlesen auswählen','Multiselect','on');%Datenfiles einlesen mehrere gleichzeitig anwählbar alle im selben Ordner wie Programm
for k=1:size(filenames,2)
    Datenfiles{k}=strcat(filepath, filenames{k});% Filepfad und Filename aneinanderhängen
    fid=fopen(Datenfiles{k},'r');%k'tes File öffnen
    
   if fid == -1
        warning('Datei nicht gefunden') ;%überprüfen ob File vorhanden
    end;
    
    vec = textscan(fid,'%s',8,'delimiter','\n'); %zuerst 5 Zeilen Text in Vektor vec schreiben
    i=0;
   
  
    vec = textscan(fid,'%12s %10s %s %s %s %s',1,'delimiter',';');
            vec{1} = strrep(vec{1},'"','');
            vec{2} = strrep(vec{2},'"','');
            vec{3} = strrep(vec{3}, ',', '.');
            vec{4} = strrep(vec{4}, ',', '.');
            vec{5} = strrep(vec{5}, ',', '.');
            vec{6} = strrep(vec{6}, ',', '.');
     

          while length(vec{1}) ~= 0 %solange die Länge des Vektors vec nicht null ist also noch nicht am Ende des Textfiles
            i=i+1;
            ScanVektor{k}.Datum(i,:) = strcat(vec{1},vec{2}); % in ErgebnisVektor auf i'ten Zeile den ersten und zweiten Wert plus eine Null des eingelesenen Vektors vec schreiben
            ScanVektor{k}.Zeit(i,:) = vec{2};
            ScanVektor{k}.Daten(i,:) = [vec{3} vec{4} vec{5} vec{6}];
            
            vec = textscan(fid,'%12s %10s %s %s %s %s',1,'delimiter',';');
            vec{1} = strrep(vec{1},'"','');
            vec{2} = strrep(vec{2},'"','');
            vec{3} = strrep(vec{3}, ',', '.');
            vec{4} = strrep(vec{4}, ',', '.');
            vec{5} = strrep(vec{5}, ',', '.');
            vec{6} = strrep(vec{6}, ',', '.');
          end
           fclose(fid);%File schliessen
          
           for n=1:size(ScanVektor{k}.Daten,2)
               for m=1:size(ScanVektor{k}.Daten,1)
                   if isempty(ScanVektor{k}.Daten{m,n})
                       ScanVektor{k}.Daten{m,n} = 'NaN';
                   end    
                ScanVektor{k}.Daten{m,n}= str2num(ScanVektor{k}.Daten{m,n});
                m=m+1;
               end
            n=n+1;
           end
           
           
           ScanVektor{k}.Datum=datenum(ScanVektor{k}.Datum,'dd.mm.yyyyHH:MM:SS'); 
           %ScanVektor{k}.Datum=strcat(ScanVektor{k}.Datum,ScanVektor{k}.Zeit);
           %ScanVektor{k}.Datum=datenum(ScanVektor{k}.Datum);
           %ScanVektor{k}.Zeit=strcat(ScanVektor{k}.Datum,ScanVektor{k}.Zeit);
           %ScanVektor{k}.Zeit=datenum(ScanVektor{k}.Zeit);
           %ScanVektor{k}.Zeit=datenum(ScanVektor{k}.Zeit,'HH:MM:SS');
           
           Matrix{k}(:,1) = ScanVektor{k}.Datum;
           %Matrix{k}(:,2) = ScanVektor{k}.Zeit;
           Matrix{k}(:,3) = cell2mat(ScanVektor{k}.Daten(:,1));
           Matrix{k}(:,4) = cell2mat(ScanVektor{k}.Daten(:,2));
           Matrix{k}(:,5) = cell2mat(ScanVektor{k}.Daten(:,3));
           Matrix{k}(:,6) = cell2mat(ScanVektor{k}.Daten(:,4));

            titel{k}=filenames{k};%Der titel Vektor i'es Element mit i'ten filenamen füllen

end

%Daten abspeichern
[fileDaten,pathDaten] = uiputfile('*.mat','Daten abspeichern');%Filename und Pfad für das abzuspeichernde File einlesen
Datenfile=strcat(pathDaten, fileDaten); %Filename und Pfad aneinnanderreihen 
savefile = Datenfile;
save(savefile, 'Matrix','titel')%Matrix und titel abspeichern in ein File mit oben angegebener Name und Endung 