Mercurial > repos > public > sbplib
annotate +util/ReplaceableString.m @ 1301:8978521b0f06 default
Fix incorrect package name.
| author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
|---|---|
| date | Wed, 08 Jul 2020 19:11:04 +0200 |
| parents | f30eafd6d4dc |
| children |
| rev | line source |
|---|---|
|
130
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 classdef ReplaceableString < handle |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 properties |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 n |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 fmt |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 param |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 methods |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 function obj = ReplaceableString(fmt, varargin) |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 default_arg('fmt', ''); |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 obj.n = 0; |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 obj.setFormat(fmt); |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 obj.param = varargin; |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 function setFormat(obj, fmt) |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 obj.fmt = fmt; |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 |
|
131
26e047194383
ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents:
130
diff
changeset
|
21 function appendFormat(obj, fmt) |
|
26e047194383
ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents:
130
diff
changeset
|
22 obj.fmt = [obj.fmt, fmt]; |
|
26e047194383
ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents:
130
diff
changeset
|
23 end |
|
26e047194383
ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents:
130
diff
changeset
|
24 |
|
130
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 function update(obj, fmt, varargin) |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 obj.setFormat(fmt); |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
27 obj.param = varargin; |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
28 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
29 obj.display(); |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
30 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
31 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
32 function updateParam(obj, varargin) |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
33 obj.param = varargin; |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
34 obj.display(); |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
35 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
36 |
|
241
09d964b850ee
ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents:
229
diff
changeset
|
37 function show(obj, varargin) |
|
09d964b850ee
ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents:
229
diff
changeset
|
38 obj.param = varargin; |
|
09d964b850ee
ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents:
229
diff
changeset
|
39 obj.display(); |
|
09d964b850ee
ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents:
229
diff
changeset
|
40 end |
|
09d964b850ee
ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents:
229
diff
changeset
|
41 |
| 229 | 42 function remove(obj) |
| 43 obj.update(''); | |
| 44 end | |
| 45 | |
|
130
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
46 function display(obj) |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
47 reverseStr = repmat(sprintf('\b'), 1, obj.n); |
| 229 | 48 cleareStr = repmat(sprintf(' '), 1, obj.n); |
| 49 newStr = sprintf(obj.fmt, obj.param{:}); | |
| 50 fprintf([reverseStr, cleareStr, reverseStr, newStr]); | |
|
130
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
51 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
52 obj.n = length(newStr); |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
53 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
54 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
55 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
56 end |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
57 |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
58 function b = padStr(a, n) |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
59 b = sprintf('%-*s', n, a); |
|
9797a74a94ec
Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
60 end |
|
894
f30eafd6d4dc
Add new formatting method to TextTable
Jonatan Werpers <jonatan@werpers.com>
parents:
241
diff
changeset
|
61 |
|
f30eafd6d4dc
Add new formatting method to TextTable
Jonatan Werpers <jonatan@werpers.com>
parents:
241
diff
changeset
|
62 % TODO: Add a debug mode which prints without replacing? |
