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

Periodisch abgespeicherte Dateien - aktuellste Datei abrufen

 

gydoh
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2016, 15:57     Titel: Periodisch abgespeicherte Dateien - aktuellste Datei abrufen
  Antworten mit Zitat      
Hallo,
ich habe mal wieder eine Frage. Ich habe ein Programm geschrieben, in dem periodisch CSV-Dateien in einen bestimmten Ordner geschrieben werden. Die Dateien können mit fortlaufender Nummer abgespeichert werden

CSVData-1.csv
CSVData-2.csv
CSVData-3.csv
CSVData-4.csv

oder mit Uhrzeit (Datum). Oder ganz anders?!

Ein anderes Programm soll nun auf diese Dateien zugreifen, jedoch soll nun immer die letzte abgespeicherte Datei aufgerufen werden, also mit der größten Nummer oder der aktuellsten Uhrzeit. Danach soll jede Sekunde die nächste Datei mit darauf folgender Nummer geladen werden. Hier mein Code Versuch, hier wird immer die Datei mit der Nummer 1 zuerst geladen und dann jede Sekunde die darauf folgende:

Code:
t=timer('ExecutionMode','fixedRate','Period',1.0,'TimerFcn',{@DatenLesen,hObject});
start (t)



function DatenLesen(hObject,eventdata,FigureHandle)


filename = ['CSVData-',num2str(i),'.csv'];
M = importdata(filename);

i = i+1

end

Hat jemand eine Idee, wie man einen Code schreiben könnte, der immer die aktuellste Datei aufruft?

Vielen Dank schonmal!
Gruß gydoh
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 19.01.2016, 16:21     Titel:
  Antworten mit Zitat      
Code:


In a.date stehen alle Zeitstempel des Betriebssystems. Die können man analysieren / sortieren.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
gydoh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.01.2016, 11:11     Titel:
  Antworten mit Zitat      
Danke für die Antwort.
Ich habe nicht ganz so viel Ahnung vom programmieren und kann mir noch nicht so richtig vorstellen wie die Befehle eingesetzt werden sollen. Könntest du mir vielleicht ein Beispiel geben?
Sagen wir die Dateien werden in folgendem Ordner abgespeichert: C:\Users\niperi\Documents\MATLAB\destination\.

Im Ordner befinden sich 4 Dateien:
CSVData-1.csv
CSVData-2.csv
CSVData-3.csv
CSVData-4.csv

und ich will nun mit 'CSVData-4.csv' anfangen. Mein bisheriger Code stehe ja schon in der ersten Nachticht. Ein Beispiel wäre echt super! Vielen Dank!
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: 20.01.2016, 13:10     Titel: Re: Periodisch abgespeicherte Dateien - aktuellste Datei abr
  Antworten mit Zitat      
Hallo gydoh,

Bitte entscheide Dich für ein Kriterium. Fortlaufende Nummer, oder File-datum oder "ganz anders". Andreas' Antwort bezog sich auf das Datum, Du fragst jetzt eher nach dem Datei-Namen. Das verwirrt unnötig.

"CSVData-4.csv" ist immer eine schlechte Wahl, denn führende Nullen für den Index würde eine alphabetische Sortierung möglich machen. "CSVData-10.csv" kommt alphabetisch gesehen aber vor "CSVData-2.csv".

Eine Methode:
Code:
FileList = dir(fullfile(Folder, 'CSVData-*.csv'));
NameList = {FileList.name};
Str = sprintf('%s*', NameList{:});
FileIndex = sscanf(Str, 'CSVData-%d.csv*', numel(NameList));
[dummy, SortIndex] = sort(FileIndex, 'descend');
FileList = FileList(SortIndex);

Jetzt ist der erste Eintrag von FileList der mit dem höchsten Index.

Was nun in welcher Reihenfolge im Sekunden-Abstand gelesen werden soll, verstehe ich nicht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 20.01.2016, 13:35     Titel:
  Antworten mit Zitat      
Generell habe ich die Sorge wir helfen hier "in eine Sackgasse hinein". Welche Anwendung benögt eine laden von Dateien jede Sekunde? Wenn es grosse Dateien sind - klappt das überhaupt so schnell? Wenn es kleine Dateien sind - warum kannn man das nicht anders organisieren? Ist das eine Messtechnick Anwendung? Trading?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
gydoh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2016, 16:08     Titel:
  Antworten mit Zitat      
Vielen Dank, Jan S. Es funktioniert! War eine große Hilfe.
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.