#include "CStringType.h" #include char *m_temp=NULL; CString::CString(const char *str) { m_temp=NULL; if(str==NULL) m_data =""; else m_data=QString::fromLocal8Bit(str); } CString::CString(const QString str) { m_temp=NULL; if(str==NULL) m_data =""; else m_data=str; } CString::~CString() { if(m_temp) delete m_temp; m_temp=NULL; }; void CString::Empty() { m_data =""; } CString::CString(const CString &other) { m_temp=NULL; m_data=other.m_data; } int CString::GetLength()const { return m_data.length(); } int CString::Find(char *str) { std::string dataStr=m_data.toStdString(); return dataStr.find(str); } int CString::Find(CString &another) { return m_data.toStdString().find(another.m_data.toStdString()); } int CString::Find(char str) { std::string dataStr=m_data.toStdString(); return dataStr.find(str); } /* */ int CString::Find(char str[],int start) { std::string dataStr=m_data.toStdString(); int npos=dataStr.find(str); if(npos==-1) return -1; if(nposStrVector; int left=0; for (int i=0;i-1;i--) { if(tempstr[i]==findStr.at(0)) { continue; } else { flag=i; break; } } m_data=temp.left(flag+1); return *this; } bool CString::operator==(const char* other ) { QString srcStr=QString::fromLocal8Bit(other); if(this->m_data==srcStr) return true; return false; } bool CString::operator!=(const char* other ) { QString srcStr=QString::fromLocal8Bit(other); if(this->m_data!=srcStr) return true; return false; } char CString::operator[](int i) { char ch=GetChar(i); return ch; } CString CString::Right(int count)const { if (count<0) { count=0; } if (count>m_data.length()) { return *this; } int length=m_data.length(); QString temp=m_data; QString lastdata=temp.remove(0,length-count); CString RightStr(lastdata); return RightStr; } CString CString::Mid(int pos,int count)const { if (count<0) { count=0; } QString temp=m_data.mid(pos,count); CString mstr(temp); return mstr; } CString CString::Mid(int pos)const { QString temp=m_data.mid(pos); CString mstr(temp); return mstr; } CString CString::Left(int count)const { if (count<0) { count=0; } if (count>m_data.length()) { return *this; } int length=m_data.length(); QString temp=m_data; QString lastdata=temp.remove(count,length-count); CString leftStr(lastdata); return leftStr; } CString CString::operator + (const CString& SrcStr) { CString str; str.m_data=m_data+SrcStr.m_data; return str; } /* CString CString::operator = (const QString& SrcStr) { CString str; str.m_data=SrcStr; return str; } */ CString CString::operator += (CString& SrcStr) { m_data = m_data+SrcStr.m_data ; return *this; } CString CString::operator += (const CString& SrcStr) { m_data = m_data+SrcStr.m_data ; return *this; } bool CString::operator!=(const CString& other ) { return m_data!=other.m_data; } bool CString::operator==(const CString& other ) { return m_data==other.m_data; } void CString::Alloc(int len) { } char* CString::GetString() const { int length=((string)(m_data.toLocal8Bit().data())).length(); if(m_temp) delete m_temp; m_temp=new char[length+1]; // Alloc(length); strcpy(m_temp,m_data.toLocal8Bit().data()); return m_temp; } char CString::GetChar(int n) { return GetString()[n]; } char CString::GetAt(int n) { return GetChar(n); } void CString::Format(const char *format,...) { //char *str=GetString(); va_list args; va_start(args,format); m_data.vsprintf(format,args); char *buf=new char[2*strlen(m_data.toStdString().c_str())+1]; vsprintf(buf,format,args); m_data=buf; delete buf; va_end(args); } void ShowMessage(QString mess) { QDialog dialog(NULL); dialog.setModal(false); Qt::WindowFlags flags = dialog.windowFlags(); flags |= Qt::WindowStaysOnTopHint; flags &= ~Qt::WindowContextHelpButtonHint; dialog.setWindowFlags(flags); dialog.setWindowTitle("提示"); QFormLayout form(&dialog); QLabel edit(&dialog); form.addRow(&edit); edit.setText(mess); // QDialogButtonBox buttonBox(QDialogButtonBox::Yes,Qt::Horizontal, &dialog); // form.addRow(&buttonBox); // if(buttonBox.button(QDialogButtonBox::Yes)) buttonBox.button(QDialogButtonBox::Yes)->setText("退出"); // QObject::connect(buttonBox.button(QDialogButtonBox::Yes), SIGNAL(clicked()), NULL, SLOT(reject())); dialog.show(); dialog.exec(); } int AfxMessageBox(CString str) { QDialog dialog(NULL); dialog.setModal(false); Qt::WindowFlags flags = dialog.windowFlags(); flags |= Qt::WindowStaysOnTopHint; flags &= ~Qt::WindowContextHelpButtonHint; dialog.setWindowFlags(flags); dialog.setWindowTitle("提示"); QFormLayout form(&dialog); form.addWidget(new QLabel(str.GetString())); // dialog.show(); if (dialog.exec() == QDialog::Accepted) { // Do something here } // return MessageBox(NULL,"提示",str.GetString(),NULL ); // QString cstr=str.GetString(); // QMessageBox msgBox; // msgBox.setText(cstr); // return msgBox.exec(); return 1; } int MessageBox(QWidget *parent,char lpText[128],char*lpCaption, int UINTuType) { if (!parent) { char *tempName=lpCaption; QString addStr=QString::fromLocal8Bit(tempName); return QMessageBox::information(NULL,lpText,addStr,QMessageBox::Ok); } return 0; }