WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

CSV Dateien in einem Ordner einlesen und konvertieren

 

equi
Forum-Century

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 02.05.2017, 16:04     Titel: CSV Dateien in einem Ordner einlesen und konvertieren
  Antworten mit Zitat      
Hallo Zusammen,

und zwar hab ich folgendes Problem, ich möchte alle .csv Dateien in einem Ordner einlesen, in eine korrekte csv-Datei konvertieren und anschließend plotten.

Die jetzige ".csv-Datei" ist keine korrekte csv Datei, da diese folgendermaßen aufgebaut ist: "1; 0; 2,612; 39,001; 0,000;" (Trennung der Spalten mit Semikolon, Kommazahl mit Komma getrennt)
Die Anzahl der Spalten ist immer konstant, die Anzahl der Zeilen kann variieren.

Konvertieren der csv Datei funktioniert, nur muss ich dazu einzeln den Namen der Dateien in diesem Ordner eingeben...

Code:
function fileout=convert2csv(filein)
  % fileout=convert2csv(filein); filein: 'Dateiname' bzw. 'Pfad';
  % Konvertiert eine .csv-Datei von Imess F435(falsches .csv-Format)
  % in ein korrektes .csv-Format und fügt _k an den Dateinamen an.
  % Ändert zuerst das Komma der Zahl in einen Punkt.
  % Ändert das Trennzeichen der Spalte von einem Semikolon in ein Komma.
 
fin=fopen(filein, 'r'); %Wird nicht benötigt?
   [a,b,c,d,e]=textread(filein,'%s%s%s%s%s','headerlines',1);
    A_k=strrep([a,b,c,d,e],',','.');%Tauscht Komma in Punkt (Kommazahl)
    A_neu=strrep(A_k,';',',');%Tauscht Semikolon in Komma (Trennzeichen Spalte)
    B=str2double(A_neu);
    dlmwrite([strrep(filein,'.csv','') '_k.csv'],B,',')  
    [fileout]=([strrep(filein,'.csv','') '_k.csv']);
    fclose(fin);
  end


Nun zum einlesen der Dateien

Code:
liste = dir('Pfad/*.csv');  % Habe den Korrekten Pfad gelöscht gerade weil er sehr lang ist...
files = {liste.name};


Das Problem hierbei ist die Namen (z.B. A=1=170313144034.csv bzw korrigiert A=1=170313144034_k.csv) sind nach dem einlesen als Cell, das heißt ich kann sie nicht einfach nach dem einlesen in die korrekte CSV-Datei umschreiben lassen.

Die Frage kurz gefasst: Wie kann ich alle Dateien in einem Ordner automatisch einlesen und diese dann auch automatisch in eine korrigierte csv-Datei umwandeln?

Hätte evtl jemand eine Idee? Ich komm irgendwie nicht drauf Very Happy

Folgende Seiten habe ich bereits angeschaut aber irgendwie häng ich trotzdem Very Happy
http://www.gomatlab.de/einlesen-all.....us-einem-ordner-t643.html
http://www.gomatlab.de/mehrere-txt-.....header-einlesen-t613.html
http://www.gomatlab.de/alle-csv-dat.....dner-einlesen-t34031.html


Vielen Dank!

Grüße Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.05.2017, 22:44     Titel:
  Antworten mit Zitat      
Hallo,

Code:
fout = cell(1, numel(files));
for k = 1:numel(files)
fout{k} = convert2csv(files{k});
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
equi
Themenstarter

Forum-Century

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 03.05.2017, 09:40     Titel:
  Antworten mit Zitat      
Vielen Dank Harald Smile
Genau das was ich gesucht habe Smile

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.