mirror of
https://port.numenaute.org/aleajactaest/khanat-code-old.git
synced 2024-12-29 03:40:55 +00:00
Changed: New function bytesToHumanReadableUnits to use specific strings for units
This commit is contained in:
parent
e77a8b17b7
commit
6679aa7621
2 changed files with 24 additions and 1 deletions
|
@ -336,6 +336,10 @@ void itoaInt64 (sint64 number, char *str, sint64 base = 10);
|
||||||
std::string bytesToHumanReadable (const std::string &bytes);
|
std::string bytesToHumanReadable (const std::string &bytes);
|
||||||
std::string bytesToHumanReadable (uint64 bytes);
|
std::string bytesToHumanReadable (uint64 bytes);
|
||||||
|
|
||||||
|
/// Convert a number in bytes into a string that is easily readable by an human, for example 105123 -> "102kb"
|
||||||
|
/// Using units array as string: 0 => B, 1 => KiB, 2 => MiB, 3 => GiB, etc...
|
||||||
|
std::string bytesToHumanReadableUnits (uint64 bytes, const std::vector<std::string> &units);
|
||||||
|
|
||||||
/// Convert a human readable into a bytes, for example "102kb" -> 105123
|
/// Convert a human readable into a bytes, for example "102kb" -> 105123
|
||||||
uint32 humanReadableToBytes (const std::string &str);
|
uint32 humanReadableToBytes (const std::string &str);
|
||||||
|
|
||||||
|
|
|
@ -380,7 +380,26 @@ string bytesToHumanReadable (uint64 bytes)
|
||||||
div++;
|
div++;
|
||||||
res = newres;
|
res = newres;
|
||||||
}
|
}
|
||||||
return toString ("%" NL_I64 "u%s", res, divTable[div]);
|
return toString ("%" NL_I64 "u %s", res, divTable[div]);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string bytesToHumanReadableUnits (uint64 bytes, const std::vector<std::string> &units)
|
||||||
|
{
|
||||||
|
if (units.empty()) return "";
|
||||||
|
|
||||||
|
uint div = 0;
|
||||||
|
uint last = units.size()-1;
|
||||||
|
uint64 res = bytes;
|
||||||
|
uint64 newres = res;
|
||||||
|
for(;;)
|
||||||
|
{
|
||||||
|
newres /= 1024;
|
||||||
|
if(newres < 8 || div > 3 || div == last)
|
||||||
|
break;
|
||||||
|
++div;
|
||||||
|
res = newres;
|
||||||
|
}
|
||||||
|
return toString ("%" NL_I64 "u %s", res, units[div].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 humanReadableToBytes (const string &str)
|
uint32 humanReadableToBytes (const string &str)
|
||||||
|
|
Loading…
Reference in a new issue