git-svn-id: svn://db.shs.com.ru/pip@208 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2016-07-24 19:34:37 +00:00
parent 314c4a1a9b
commit 8befd35fd6
4 changed files with 23 additions and 9 deletions

View File

@@ -31,12 +31,6 @@ public:
};
int main (int argc, char * argv[]) {
PIFile::setDefaultCharset("utf8");
piCout << PIFile::defaultCharset();
PIFile::setDefaultCharset("cp1251");
piCout << PIFile::defaultCharset();
return 0;
VC<30, double> x(1.5), y(3.3);
double r = 0.0;
PITimeMeasurer tm;

View File

@@ -193,6 +193,19 @@ PIString PIString::fromAscii(const char * s) {
}
PIString PIString::fromCodepage(const char * s, const char * c) {
int l = 0;
while (s[l] != '\0') ++l;
PIString ret;
if (l > 0) ret.appendFromChars(s, l
#ifdef PIP_ICU
, c
#endif
);
return ret;
}
void PIString::buildData(const char * cp) const {
data_.clear();
#ifdef PIP_ICU

View File

@@ -731,7 +731,10 @@ public:
//! \brief Return string constructed from ASCII
static PIString fromAscii(const char * s);
//! \brief Return string constructed from "c" codepage
static PIString fromCodepage(const char * s, const char * c);
//! \brief Return string contains human readable size in B/kB/MB/GB/TB
//! \details Example: \snippet pistring.cpp PIString::readableSize
static PIString readableSize(llong bytes) {PIString s; s.setReadableSize(bytes); return s;}

View File

@@ -180,7 +180,7 @@ bool PIFile::closeDevice() {
PIString PIFile::readLine() {
PIString str;
PIByteArray str;
if (!opened_) return str;
int cc;
while (!isEnd()) {
@@ -188,8 +188,12 @@ PIString PIFile::readLine() {
if (char(cc) == '\n' || cc == EOF) break;
str.push_back(char(cc));
}
str.push_back('\0');
if (defaultCharset()) {
return PIString::fromCodepage((const char *)str.data(), defaultCharset());
}
//cout << "readline: " << str << endl;
return str;
return PIString(str);
}