Patch level : 10.0 0044

Files correlati     : Postman
Ricompilazione Demo : [ ]
Commento           :

Corretta scrittura file ini (tolti i '\' di troppo)


git-svn-id: svn://10.65.10.50/trunk@16566 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-05-01 09:08:35 +00:00
parent 7f0c7a2cbf
commit 2d75aa8409
3 changed files with 36 additions and 7 deletions

View File

@ -166,7 +166,7 @@ void TBaseServerApp::WriteLog(const wxChar* str) const
*m_log << str << endl; *m_log << str << endl;
} }
wxString TBaseServerApp::GetTempFilename() wxString TBaseServerApp::GetTempFilename(const wxChar * ext)
{ {
wxString strTmp; wxString strTmp;
if (m_strTempDir.IsEmpty()) if (m_strTempDir.IsEmpty())
@ -177,9 +177,9 @@ wxString TBaseServerApp::GetTempFilename()
(wxString&)m_strTempDir << ::wxPathOnly(strTmp) << "/"; (wxString&)m_strTempDir << ::wxPathOnly(strTmp) << "/";
} }
strTmp = m_strTempDir; strTmp = m_strTempDir;
strTmp += wxString::Format("%s_%d.htm", GetAppName(), m_nTmpCounter); strTmp += wxString::Format("%s_%d.%s", GetAppName(), m_nTmpCounter, ext);
m_nTmpCounter++; m_nTmpCounter++;
if (m_nTmpCounter >= 4) if (m_nTmpCounter >= 32)
m_nTmpCounter = 0; m_nTmpCounter = 0;
return strTmp; return strTmp;

View File

@ -124,7 +124,7 @@ public:
bool GetConfigBool(const wxChar* key, bool def = false, const wxChar* app = NULL) const; // Uses GetConfigString bool GetConfigBool(const wxChar* key, bool def = false, const wxChar* app = NULL) const; // Uses GetConfigString
virtual wxString GetLogFileName() const; virtual wxString GetLogFileName() const;
wxString GetTempFilename(); wxString GetTempFilename(const wxChar * ext = "htm");
TXmlItem& CreatePageBody(TXmlItem& html, wxString header = "") const; TXmlItem& CreatePageBody(TXmlItem& html, wxString header = "") const;
TXmlItem& AddLinkButton(TXmlItem& body, const wxChar* strCaption, const wxChar* strHref) const; TXmlItem& AddLinkButton(TXmlItem& body, const wxChar* strCaption, const wxChar* strHref) const;

View File

@ -122,6 +122,7 @@ protected:
bool LoadEditors(const wxChar * filename, wxArrayString & editors); bool LoadEditors(const wxChar * filename, wxArrayString & editors);
void SaveXml2IniParagraph(wxFileConfig & ini, TXmlItem& xmlItem); void SaveXml2IniParagraph(wxFileConfig & ini, TXmlItem& xmlItem);
void SaveTransaction(const TXmlItem& xmlMethod, wxString & filename); void SaveTransaction(const TXmlItem& xmlMethod, wxString & filename);
void AdjustTransaction(wxString & filename);
const wxString EditorCommand(); const wxString EditorCommand();
void ExecuteTransaction(wxString & filename); void ExecuteTransaction(wxString & filename);
void LoadXmlParagraph(TXmlItem & xmlItem, wxString & paragraph, wxString & filename); void LoadXmlParagraph(TXmlItem & xmlItem, wxString & paragraph, wxString & filename);
@ -340,6 +341,8 @@ void TPostmanServer::SaveTransaction(const TXmlItem& xmlMethod, wxString & filen
wxString paragraph; wxString paragraph;
int items = xmlMethod.GetChildren(); int items = xmlMethod.GetChildren();
if (wxFileName::FileExists(filename))
wxRemoveFile(filename);
for (int i = 0; i < items; i++) for (int i = 0; i < items; i++)
{ {
TXmlItem * child = xmlMethod.GetChild(i); TXmlItem * child = xmlMethod.GetChild(i);
@ -369,6 +372,33 @@ void TPostmanServer::SaveTransaction(const TXmlItem& xmlMethod, wxString & filen
SaveXml2IniParagraph(ini, *child); SaveXml2IniParagraph(ini, *child);
} }
} }
void TPostmanServer::AdjustTransaction(wxString & filename)
{
wxTextFile file(filename);
bool changed = false;
if (file.Open())
{
for (wxString & row = file.GetFirstLine(); !file.Eof(); row = file.GetNextLine())
{
const int pos = row.Find("\\,");
if (pos > 0)
{
row.Remove(pos, 1);
changed = true;
size_t rowno = file.GetCurrentLine();
file.InsertLine(row, rowno);
file.RemoveLine(rowno + 1);
}
}
if (changed)
file.Write();
}
else
WriteLog("Can't create Transaction file");
}
const wxString TPostmanServer::EditorCommand() const wxString TPostmanServer::EditorCommand()
{ {
const bool firmchanged = m_Firm != m_LastFirm; const bool firmchanged = m_Firm != m_LastFirm;
@ -546,15 +576,14 @@ void TPostmanServer::SoapProcessMethod(const TXmlItem& xmlMethod, TXmlItem& xmlA
if (strMethod == "m:CampoTransaction") if (strMethod == "m:CampoTransaction")
{ {
m_Logicnum = 0; m_Logicnum = 0;
wxFileName filename(GetTempFilename()); wxFileName filename(GetTempFilename("ini"));
filename.SetExt("ini");
wxString name(filename.GetFullPath()); wxString name(filename.GetFullPath());
SaveTransaction(xmlMethod, name); SaveTransaction(xmlMethod, name);
AdjustTransaction(name);
ExecuteTransaction(name); ExecuteTransaction(name);
LoadTransaction(name, xmlAnswer); LoadTransaction(name, xmlAnswer);
Log(xmlAnswer, name); Log(xmlAnswer, name);
wxRemoveFile(name);
} }
} }