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

csvconvert ohne neue datei erzeugen

 

ddtran
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 11.03.15
Wohnort: FFM
Version: R2014b
     Beitrag Verfasst am: 19.03.2015, 12:38     Titel: csvconvert ohne neue datei erzeugen
  Antworten mit Zitat      
Ich habe bis jetzt leider keinen besseren workaround gefunden, hoffe aber, dass ihr mir weiterhelfen könnt!

ich möchte eine .csv-Datei einladen, die Semikolon als Trennzeichen hat. Des Weiteren ist die numerische Trennung (aufgrund der verwendete Messgeräte) in Komma, statt in Punkt.
Daher entfällt schon mal ein einfacher Import via importdata o.Ä.

Ich habe mir daher folgenden Code zurecht gebastelt:


Zitat:

Zunächst liest die csv-Datei ein und beschreibt eine neue, in einem temporären Ordner.
Dann ersetzt er Komma mit Punkt.
Code:

file=(path filename)     %die Werte für den Pfad und den Dateinamen lese ich vorher ein

fdin = fopen(file, 'r');    %mit file ist Pfad+Dateiname gemeint
fdout = fopen(['C:\TempOrdner\' filename], 'w');

    while (~feof(fdin))
    line = fgetl(fdin);
    line = strrep(line, ',', '.');
    fprintf(fdout, '%s\n', line);
    end
 


Zitat:
Danach importiert er die im temporären Ordner erzeugte Datei.
Code:

dat=importdata(['C:\TempOrdner\' list_entry{1}] , ';');



Besteht die Möglichkeit, da ich diesen Teil später in eine GUI implementieren möchte, KEINE neue Datei zu erzeugen?
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.03.2015, 15:30     Titel: Re: csvconvert ohne neue datei erzeugen
  Antworten mit Zitat      
Hallo ddtran,

ASCII-Files mit Kommas als Dezimal-Trenner lassen sich nicht ohne weiteres importieren. Das ist einfach prinzipiell eine schlechte Methode.
Das Erzeugen einer temporären Datei ist sinnvoll, die Original-Dateien gleich "richtig" zu schreiben ist effizienter. Du könntest auf gleich die Orgiginal-Datein konvertieren.

Wenn Du die Datenstruktur zeigen würdest, könnte man abschätzen, ob Du die gesamte Datei als Text einlesen kannst, die Kommas zu Punkten im Speicher ersetzen und dann alle Werte mit SSCANF einlesen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
ddtran
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 11.03.15
Wohnort: FFM
Version: R2014b
     Beitrag Verfasst am: 19.03.2015, 16:46     Titel:
  Antworten mit Zitat      
Es ist tatsächlich eine einfachste Datei.
2 Spalten, die durch ein Semikolon getrennt sind
und jeweils Zahlen ein Komma als Trennzeichen haben.

Ich habe eine Beispieldatei hochgeladen.
(Hat als dateiendung eigtl .csv, diese Endung wird mir aber nicht erlaubt hoch zu laden)

Tatsächlich ist es prinzipiell eine schlechte Methode.
Aber die verwendeten Geräte spucken die Dateien nunmal so aus...

Die GUI, die ich zur Datenverarbeitung schreibe, soll dabei als zusätzliches Tool für die Anwender dienen. Diese arbeiten (wie üblich im europäischen Sprachraum) mit Komma als Dezimaltrennzeichen...

Beispieldatei2.txt
 Beschreibung:

Download
 Dateiname:  Beispieldatei2.txt
 Dateigröße:  23.03 KB
 Heruntergeladen:  331 mal
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 - 2025 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.