git-svn-id: svn://db.shs.com.ru/pip@207 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
7
main.cpp
7
main.cpp
@@ -5,6 +5,7 @@
|
|||||||
#include "piscreen.h"
|
#include "piscreen.h"
|
||||||
#include "piethernet.h"
|
#include "piethernet.h"
|
||||||
#include "piintrospection.h"
|
#include "piintrospection.h"
|
||||||
|
#include "pifile.h"
|
||||||
|
|
||||||
//struct MS {
|
//struct MS {
|
||||||
// //MS() {i = 0; f = 0.;}
|
// //MS() {i = 0; f = 0.;}
|
||||||
@@ -30,6 +31,12 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
int main (int argc, char * argv[]) {
|
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);
|
VC<30, double> x(1.5), y(3.3);
|
||||||
double r = 0.0;
|
double r = 0.0;
|
||||||
PITimeMeasurer tm;
|
PITimeMeasurer tm;
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ void android_thread_exit_handler(int sig) {
|
|||||||
PIInit::PIInit() {
|
PIInit::PIInit() {
|
||||||
PISystemInfo * sinfo = PISystemInfo::instance();
|
PISystemInfo * sinfo = PISystemInfo::instance();
|
||||||
sinfo->execDateTime = PIDateTime::current();
|
sinfo->execDateTime = PIDateTime::current();
|
||||||
|
file_charset = 0;
|
||||||
#ifndef ANDROID
|
#ifndef ANDROID
|
||||||
PISignals::setSlot(__sighandler__);
|
PISignals::setSlot(__sighandler__);
|
||||||
PISignals::grabSignals(PISignals::UserDefined1);
|
PISignals::grabSignals(PISignals::UserDefined1);
|
||||||
@@ -253,6 +254,8 @@ PIInit::PIInit() {
|
|||||||
|
|
||||||
|
|
||||||
PIInit::~PIInit() {
|
PIInit::~PIInit() {
|
||||||
|
if (file_charset) delete file_charset;
|
||||||
|
file_charset = 0;
|
||||||
#ifdef WINDOWS
|
#ifdef WINDOWS
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
//if (setTimerResolution) setTimerResolutionAddr(prev_res, TRUE, &prev_res);
|
//if (setTimerResolution) setTimerResolutionAddr(prev_res, TRUE, &prev_res);
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
#include "piincludes.h"
|
#include "piincludes.h"
|
||||||
|
|
||||||
|
|
||||||
|
class PIFile;
|
||||||
|
|
||||||
|
|
||||||
class __PIInit_Initializer__ {
|
class __PIInit_Initializer__ {
|
||||||
public:
|
public:
|
||||||
__PIInit_Initializer__();
|
__PIInit_Initializer__();
|
||||||
@@ -38,6 +41,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
class PIInit {
|
class PIInit {
|
||||||
|
friend class PIFile;
|
||||||
public:
|
public:
|
||||||
PIInit();
|
PIInit();
|
||||||
~PIInit();
|
~PIInit();
|
||||||
@@ -48,6 +52,7 @@ private:
|
|||||||
HMODULE ntlib;
|
HMODULE ntlib;
|
||||||
ULONG prev_res;
|
ULONG prev_res;
|
||||||
#endif
|
#endif
|
||||||
|
char * file_charset;
|
||||||
};
|
};
|
||||||
|
|
||||||
static __PIInit_Initializer__ __piinit_initializer__;
|
static __PIInit_Initializer__ __piinit_initializer__;
|
||||||
|
|||||||
@@ -182,8 +182,8 @@ bool PIFile::closeDevice() {
|
|||||||
PIString PIFile::readLine() {
|
PIString PIFile::readLine() {
|
||||||
PIString str;
|
PIString str;
|
||||||
if (!opened_) return str;
|
if (!opened_) return str;
|
||||||
int cc, cp = 0;
|
int cc;
|
||||||
while (!isEnd() && cp < 4095) {
|
while (!isEnd()) {
|
||||||
cc = fgetc(fd);
|
cc = fgetc(fd);
|
||||||
if (char(cc) == '\n' || cc == EOF) break;
|
if (char(cc) == '\n' || cc == EOF) break;
|
||||||
str.push_back(char(cc));
|
str.push_back(char(cc));
|
||||||
@@ -395,6 +395,22 @@ void PIFile::remove() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const char * PIFile::defaultCharset() {
|
||||||
|
return PIInit::instance()->file_charset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PIFile::setDefaultCharset(const char * c) {
|
||||||
|
if (PIInit::instance()->file_charset) delete PIInit::instance()->file_charset;
|
||||||
|
PIInit::instance()->file_charset = 0;
|
||||||
|
if (!c) return;
|
||||||
|
PIInit::instance()->file_charset = new char[1024];
|
||||||
|
memset(PIInit::instance()->file_charset, 0, 1024);
|
||||||
|
strcpy(PIInit::instance()->file_charset, c);
|
||||||
|
piCout << PIInit::instance()->file_charset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PIFile::FileInfo PIFile::fileInfo(const PIString & path) {
|
PIFile::FileInfo PIFile::fileInfo(const PIString & path) {
|
||||||
FileInfo ret;
|
FileInfo ret;
|
||||||
|
|||||||
@@ -247,6 +247,11 @@ public:
|
|||||||
EVENT_HANDLER1(void, resize, llong, new_size) {resize(new_size, 0);}
|
EVENT_HANDLER1(void, resize, llong, new_size) {resize(new_size, 0);}
|
||||||
EVENT_HANDLER2(void, resize, llong, new_size, uchar, fill);
|
EVENT_HANDLER2(void, resize, llong, new_size, uchar, fill);
|
||||||
|
|
||||||
|
//!
|
||||||
|
static const char * defaultCharset();
|
||||||
|
|
||||||
|
//!
|
||||||
|
static void setDefaultCharset(const char * c);
|
||||||
|
|
||||||
//! Returns opened temporary file with open mode "mode"
|
//! Returns opened temporary file with open mode "mode"
|
||||||
static PIFile openTemporary(PIIODevice::DeviceMode mode = PIIODevice::ReadWrite) {return PIFile(PIString(tmpnam(0)), mode);}
|
static PIFile openTemporary(PIIODevice::DeviceMode mode = PIIODevice::ReadWrite) {return PIFile(PIString(tmpnam(0)), mode);}
|
||||||
|
|||||||
Reference in New Issue
Block a user