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