Setelah kalian pelajari mengenai component waitbar yang berguna untuk memonitor sebuah looping yang teramat panjang dan lama, selanjutnya kita bahas File Dialog yang terdiri dari Open dan Save sebuah file.
Perintah Simpan File
Contents
Perintah yang digunakan untuk menampilkan File Dialog Simpan file yaitu
[FileName, PathName, FilterIndex] = uiputfile(FilterSpec,DialogTitle, DefaultName);
Menampilkan Kotak Dialog Simpan File
Ada banyak cara menampilkan kotak dialog simpan file, cara paling sederhana yaitu
file = uiputfile('','Select a File')
Bisa juga dengan memberikan opsi filter
clc;clear all;close all; filter = {'*.m';'*.slx';'*.mat';'*.*'}; [file, path] = uiputfile(filter,'Simpan File',’nama file.m’);
Mengelola return
Kalian bisa melihat ada 2 return file dan path, nah untuk mengelola returnya yaitu ketika user melakukan cancel ataupun memilih yes, dengan menggunakan perintah isequal() serta melakukan joining dengan perintah fullfile().
if isequal(file,0) disp('batal simpan file') return; end lokasi_file = fullfile(path,file)
Sehingga ketika user melakukan cancel / tidak jadi simpan file, akan return dan tidak menjalankan kode dibawahnya.
Manajemen last access
Kalau kamu pernah membuat aplikasi menggunakan C#, Visual Basic, ketika kotak dialog simpan dan buka file, maka ketika dijalankan berulang-ulang, kotak dialog tersebut akan secara cerdas menampilkan lokasi/folder terakhir diakses, sehingga mempermudah user dalam memilih lokasi file sebelumnya atau last access. Tapi ini tidak berlaku di matlab, sehingga kalian bisa membuat function tersendiri untuk mengelola hal tersebut. Kalian simpan saja script berikut dengan nama savefiles.m
function [folder] = savefiles() %history path disimpan dalam file temporarylast_file_access.mat if exist('temporary')~=7 mkdir 'temporary'; end nama_file ='temporary/last_save_access.mat'; %% check exist folder if exist(nama_file)~=2 h.FULLPATH=[]; else t=load(nama_file); h.FULLPATH=t.folder; end %% buka file if isempty(h.FULLPATH)~=1 [filename, pathname] = uiputfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)',h.FULLPATH); else [filename, pathname] = uiputfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)'); end if isequal(filename,0) || isequal(pathname,0) folder=[]; return; end h.FULLPATH=fullfile(pathname, filename); folder=h.FULLPATH; save 'temporary/last_save_access.mat' folder;
Bisa kalian coba dengan memanggil savefiles(), maka akan secara otomatis memberikan tampilan folder terakhir digunakan
Perintah Open File
Perintah open file sama seperti dengan Simpan File, yang berbeda hanya dengan perintahnya yaitu uigetfile(). Biar gampang, kalian simpan saja script ini dengan nama openfiles()
function [folder] = openfiles() %history path disimpan dalam file temporarylast_file_access.mat if exist('temporary')~=7 mkdir 'temporary'; end nama_file ='temporary/last_open_access.mat'; %% check exist folder if exist(nama_file)~=2 h.FULLPATH=[]; else t=load(nama_file); h.FULLPATH=t.folder; end %% buka file if isempty(h.FULLPATH)~=1 [filename, pathname] = uigetfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)',h.FULLPATH); else [filename, pathname] = uigetfile({'*.jpg';'*.jpeg'}, 'Simpan file (s)'); end if isequal(filename,0) || isequal(pathname,0) folder=[]; return; end h.FULLPATH=fullfile(pathname, filename); folder=h.FULLPATH; save 'temporary/last_open_access.mat' folder;
Jadi dengan 2 fungsi diatas, user akan dipermudah dalam melakukan simpan dan buka file.
Cara penggunaan
Cara penggunaan function diatas seperti contoh berikut, dengan melakukan cek, ketika mengembalikan nilai 1, maka user melakukan cancel
lokasi_file = openfiles(); if isempty(lokasi_file)==1 return; end