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

Listbox und fopen

 

MorrisThorne
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 07.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.04.2008, 14:58     Titel: Listbox und fopen
  Antworten mit Zitat      
Hallo allerseits, da bin ich wieder und bringe im Gepäck eine neue Frage mit.

Bisher habe ich Files in Matlab per uigetfile geladen. da mir das aber zu umständlich ist, wenn ich mehr als eine Datei öffnen möchte (da ich die Dailogbox dann ja z.b. 10 mal öffnen müsste) dachte ich mir: ListBox, das wäre des rätsels Lösung.

Also ne Listbox hergezaubert, die mir dann auch tatsächlich alles so anzeigt wie ich es gerne hätte. Ich kann den Pfadnamen und den Filnamen auslesen, kein Problem.

So, wenn ich nun aber den zusammengesetzten kompletten Pfadnamen+Filnamen in fopen reinschreibe, dann bleibt meine fid nacher leer.

Hier mal etwas Code zur Veranschaulichung, was ich da verbrochen habe


Code:

   fn = get(handles.LB_data,'String');                         %LB_data ist die Listbox
   fileName = fn(get(handles.LB_data,'Value'))
   pathName = strcat(handles.verz,'\')                        %handles.verz ist das Verzeichnis, wo die datenfiles liegen
   completePath = string(strcat(pathName, fileName))
   
   fid = fopen(completePath)
 



handles.verz habe ich per uigetdir erhalten

Code:

handles.verz = uigetdir
 

So, wo is hier nun der Haken? Jemand nen tip?

Gruß, MorrisThorne
_________________

*Oink oink, kommt her, ihr Schweinchen! Oink oink!*
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 18.04.2008, 15:07     Titel:
  Antworten mit Zitat      
Moin,
woher hast du das hier:
Code:
completePath = string(strcat(pathName, fileName));
? Den String -Befehl kennt meine Hilfe nicht!?

Ich würd es so lösen:
Code:
completePath = [pathName fileName];

Außerdem würde ich die Zeile pathName folgendermaßen schreiben:
Code:
pathName = [handles.verz filesep];


Ich habs nicht probiert, aber so müsste es eigentlich klappen...

Gruß
Alex

PS: Das neue Zwergenabenteuer schon durch? Wink
_________________

>> 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
 
MorrisThorne
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 07.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.04.2008, 15:15     Titel:
  Antworten mit Zitat      
Das mit
Code:

completePath = [pathName fileName]
 


hatte ich auch zuerst probiert, hat aber nicht geklappt. der Grund steht unten erklärt Smile

Das mit dem 'string(....)' ist - weiss nicht wie das in Matlab heisst - in C++ ein Typecast. Habs mal probiert und hat an und für sich getan. Das Problem war aber ein anderes, habe es mittlerweile gelöst bekommen, Antwort findet sich hier

http://www.gomatlab.de/dynamische-v.....625,highlight,ordner.html

Sprich, das Problem war, dass das eine ein cell war, das andere nicht, deshalb gabs da Problemchen (zu erkennen an den einfachen Anführungszeichen in der Ausgabe auf dem Prompt 'irgendeinCell'. jetzt sieht es mit einem Typecast in 'char' so aus:

Code:

fn = get(handles.LB_data,'String');
   fileName = char(fn(get(handles.LB_data,'Value')))
   pathName = [handles.verz filesep]
   completePath = [pathName fileName]
   fid = fopen(completePath)
 


und funktioniert auch. Smile

Das mit 'filesep' kannte ich noch nicht, danke für den Tip, hab ich gleich mal so übernommen.


Aber danke fürs schnelle Antworten

Gruß, MorrisThorne[/code]

P.S.: Nein, bin gerade noch relativ am Anfang, aber meine Herren, geht schon gut los. Habe von 'meinen' Zwergen auch nichts anderes erwartet Smile
_________________

*Oink oink, kommt her, ihr Schweinchen! Oink oink!*
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 18.04.2008, 19:11     Titel:
  Antworten mit Zitat      
Hallo alle zusammen,
ich würde lieber die eigene Matlab-Funktion fullfile empfehlen, um Pfade zusammenzusetzen. Diese setzt dann automatisch filesep zwischen Pfadteilen, falls keiner da ist.

Code:

completePath = fullfile(pathName, fileName);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 21.04.2008, 08:03     Titel:
  Antworten mit Zitat      
Hey Denny,
gut zu wissen, dass es auch eine solche Funktion gibt Smile
_________________

>> 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
 
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.