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

Probleme mit uigetfile

 

Carsi
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 16.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2008, 15:44     Titel: Probleme mit uigetfile
  Antworten mit Zitat      
Hallo Alle,

ich habe mit folgendem Code in meinem m-file Probleme:

Code:

[files,dir] = uigetfile({str1a;str1b;str1c},str2,'MultiSelect','on');
cellstr_files = cellstr(strcat(dir, files));
 

Und zwar möchte ich mit dieser Abfrage mehrer Dateien öffnen,
aber wenn ich gleichzeitig 56Dateien auswähle gibt es eine Fehler.

Mit dem folgenden Code funktioniert es, auch mit 56 Dateien!
Code:

csf =   { 'D:\06_Matlab\001.dat' ...
      :
      :
      :
      :
          'D:\06_Matlab\056.dat' ...
        } ;
cellstr_files = csf;
 

Gibt es da eine Lösungsmöglichkeit oder ist eine Begrenzung
in dem uigetfile implementiert?

edit by steve: Code-Umgebung ergänzt! Bitte zukünftig selbstständig formatieren (Button oben mittig)!
Private Nachricht senden Benutzer-Profile anzeigen


MrJ

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 15:49     Titel: Probleme mit uigetfile
  Antworten mit Zitat      
Hallo zusammen

Ich stehe vor dem gleichen Rätsel und hoffe durch euch an eine Lösung zu kommen. Ab 16 Dateien macht bei mir das uigetfile im Multiselectmode schlapp.

Vielen Dank im Voraus
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 17.09.2008, 15:59     Titel:
  Antworten mit Zitat      
Hi,

das hängt wohl damit zusammen, dass irgendwann zu viele Zeichen für die Namen gespeichert werden müssen.
Guck im File Exchange mal nach uigetfiles.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 17.09.2008, 16:00     Titel:
  Antworten mit Zitat      
Moin,

ich kann das Verhalten nicht nachvollziehen... Bei klappt das Einlesen von 66 und mehr Dateien problemlos...

Was für eine Fehlermeldung kommt denn?
Carsi hat Folgendes geschrieben:

Code:

[files,dir] = uigetfile({str1a;str1b;str1c},str2,'MultiSelect','on');
cellstr_files = cellstr(strcat(dir, files));
 


Warum möchtest du ein Cell-Array erstellen, in dem Pfad und Dateiname als ein String stehen? Es reicht doch, wenn du ein Cell-Array hast in welchem die Dateinamen stehen und eine Variable in welcher der Pfad steht - oder nicht?!

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 17.09.2008, 16:02     Titel:
  Antworten mit Zitat      
nschlange hat Folgendes geschrieben:
das hängt wohl damit zusammen, dass irgendwann zu viele Zeichen für die Namen gespeichert werden müssen.


Das glaub ich nicht, da bei mir wie gesagt 66 Dateien aufwärts eingelesen werden können mit einer Dateinamenläge von min. 23 Zeichen Wink

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 17.09.2008, 16:04     Titel:
  Antworten mit Zitat      
steve hat Folgendes geschrieben:
nschlange hat Folgendes geschrieben:
das hängt wohl damit zusammen, dass irgendwann zu viele Zeichen für die Namen gespeichert werden müssen.


Das glaub ich nicht, da bei mir wie gesagt 66 Dateien aufwärts eingelesen werden können mit einer Dateinamenläge von min. 23 Zeichen Wink

Gruß
Alex


Das ist möglicherweise versionsabhängig. Wink
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 17.09.2008, 16:07     Titel:
  Antworten mit Zitat      
nschlange hat Folgendes geschrieben:
Das ist möglicherweise versionsabhängig. Wink


Das kann sein, aber ab R2007b definitv auszuschließen - zumindest bei mir Rolling Eyes
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gorbi
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.11.08
Wohnort: ---
Version: 7.8.0 R 2009 a
     Beitrag Verfasst am: 28.01.2010, 12:10     Titel: Zu viele Dateien für UIGETFILE?
  Antworten mit Zitat      
Hallo, ich habe ein ähnliches Problem:
Wenn der Benutzer mit dem untestehenden Code viele Dateien mit langen Dateinamen auswählt, erscheint die Fehlermeldung "Datei nicht gefunden".
Mit wenigen langen Dateinnamen funktioniert es oder mit vielen kurzen Dateinamen. Wie kann man das Problem umgehen? Es handelt sich um über 1.000 Dateien, die alle den gleichen Namen haben, bis auf eine fortlaufende Zahl nach einer Raute am Namensende (vor '.txt').
Pfad und Dateiname zusammengenommen haben jeweils ca. 130 Zeichen, also in etwa: 'D:\Benutzer\Laboranten\Mitarbeitername\Daten\Messung_5\Datei_Funktionstest#0001.txt'
Ich hätte auch nichts dagegen, wenn der Benutzer einfach nur den Ordner auswählt, in dem sich die ganzen Dateien befinden, aber mit uigetdir komme ich noch nicht so ganz klar, besonders, weil ich den Pfad und den Dateinamen (bis zur Raute) für ein späteres Speichern benötige.

Code:

[Dateiname, Verzeichnis] = uigetfile ({'*.txt'; '*.dat'; '*.uvw'},'Überschrift','D:\Anwender\Daten\','MultiSelect', 'on');

Dateianzahl = length(Dateiname');

Datei = strvcat(Dateiname(1));
Zeichen = findstr(Datei, '#');
Name = Datei(1:Zeichen-1);

Datpfad=strcat(Verzeichnis, Dateiname);

for y=1:Dateianzahl-1
    Vertauschung(1)=Datpfad(1); % Kein Ahnung, warum Windows den letzten Dateinamen an die erste Stelle setzt.
    Dateipfad(y)=Datpfad(y+1);
    Dateipfad(Dateianzahl)=Vertauschung(1);
    Dateipfad=Dateipfad';
end

%Datensatz= zeros (1,Dateianzahl); % Vorbelegung für schnelleren Schleifendurchlauf.

h2=waitbar (0/Dateianzahl, 'Datenimport',  'name', 'Bitte warten...','Units', 'normalized', 'Position', [0.32 0.2 0.35 0.08]); % Fortschittsanzeige (Balken).
for k=1:Dateianzahl
    temp = importdata(char(Dateipfad(k)));
    Datensatz(k).textdata = temp.textdata; % Dateikopf.
    Datensatz(k).data = temp.data; % Daten.      
    waitbar (k/Dateianzahl, h2, 'Daten werden geladen...'); % Fortschrittsanzeige.
end

close(h2);
if k==Dateianzahl
    disp ('Daten wurden geladen.');
end


Noch etwas: Ich habe festgestellt, daß Windows die erste und letzte Datei vertauscht, wenn man alle auswählt, indem man auf die erste klickt, dann die Umschalttaste gedrückt hält und auf die letzte Datei klickt. Nicht aber, wenn man alle Dateien mit <Strg>+A auswählt. Wie kann ich das unterscheiden, um im letzteren Fall den Vertauschungsalgorithmus nicht laufen zu lassen? Verwendet wird Matlab 7.8.0.R2009a.

Vielen Danke für die Hilfe. Smile

Gruß Gorbi
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.