Mercurial > repos > public > sbplib
comparison +util/ReplaceableString.m @ 130:9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 04 Feb 2016 16:29:03 +0100 |
parents | |
children | 26e047194383 |
comparison
equal
deleted
inserted
replaced
129:0a881a3dc9a9 | 130:9797a74a94ec |
---|---|
1 classdef ReplaceableString < handle | |
2 properties | |
3 n | |
4 fmt | |
5 param | |
6 end | |
7 | |
8 methods | |
9 function obj = ReplaceableString(fmt, varargin) | |
10 default_arg('fmt', ''); | |
11 obj.n = 0; | |
12 | |
13 obj.setFormat(fmt); | |
14 obj.param = varargin; | |
15 end | |
16 | |
17 function setFormat(obj, fmt) | |
18 obj.fmt = fmt; | |
19 end | |
20 | |
21 function update(obj, fmt, varargin) | |
22 obj.setFormat(fmt); | |
23 obj.param = varargin; | |
24 | |
25 obj.display(); | |
26 end | |
27 | |
28 function updateParam(obj, varargin) | |
29 obj.param = varargin; | |
30 obj.display(); | |
31 end | |
32 | |
33 function display(obj) | |
34 reverseStr = repmat(sprintf('\b'), 1, obj.n); | |
35 newStr = padStr(sprintf(obj.fmt, obj.param{:}),obj.n); | |
36 fprintf([reverseStr, newStr]); | |
37 | |
38 obj.n = length(newStr); | |
39 end | |
40 end | |
41 | |
42 end | |
43 | |
44 function b = padStr(a, n) | |
45 b = sprintf('%-*s', n, a); | |
46 end |