getFieldString method
Implementation
Future<String> getFieldString(int size, String? s) async {
try {
String buffer = createEmptyString();
// buffer.replace(0, size, emptyString);
// buffer.setLength(size);
if (buffer.length > size) {
buffer = buffer.substring(0, size);
}
// international characters must be accounted for so size != length.
int maxSize = size;
if (s != null) {
buffer = buffer.replaceRange(0, size, s);
// TODO here Characters might be used
var subStr = s.substring(0, math.min(size, s.length));
int currentBytes = (await charset!.encode(subStr)).length;
// int currentBytes =
// subStr
// .getBytes(charset.name())
// .length;
if (currentBytes > size) {
// char[] c = new char[1];
// for (int index = size - 1; currentBytes > size; index--) {
// c[0] = buffer.charAt(index);
// String string = new String(c);
// buffer.deleteCharAt(index);
// currentBytes -= string.getBytes().length;
// maxSize--;
// }
buffer = buffer.substring(0, size);
} else {
if (s.length < size) {
maxSize = size - (currentBytes - s.length);
for (int i = s.length; i < size; i++) {
buffer += ' ';
}
}
}
}
// buffer.setLength(maxSize);
if (buffer.length > maxSize) {
buffer = buffer.substring(0, maxSize);
}
return buffer.toString();
} catch (e) {
print('ERROR: This error should never occurr');
rethrow;
}
}