Hallo fuchs,
ISEMPTY gibt bereits ein LOGICAL zurück, dann muss man nicht nochmal mit ==1 testen, ob es TRUE ist.
Weitere Ideen:
oldFile = get(handles.Liste, 'String');
if isempty(oldList) % Could be an empty string
oldFile = {};
end
% Catch the path also in every case!
[filename, pathname] = uigetfile({'*.*','All files'}, ...
'Choose files','MultiSelect','on');
if isequal(filename, 0)
file ={};
else
file = strcat(pathname, filename);
file = unique(cat(1, oldFile, file(:))); % Unique and sorted
end
set(handles.Liste, 'String', filen);
Der UNIQUE-Befehl wirft dabei also alle doppelten Files raus.
Das Umwandeln in eine CHAR-Matrix ist unpraktisch, da die Files ja unterschiedliche lange Namen haben können.
Wenn wirklich nur der File-Namen wichtig ist, kann man den pathname-Teil weglassen. Allerdings sind solche Pfad-losen Filenamen immer immer immer wieder eine Quelle nervender Bugs. Deshalb sind absolute Filenamen, also mit Pfad, unbedingt zu bevorzugen.
Gruß, Jan
↧