-
Надо из XML-файла определенного формата с определенной схемой получить исходники .cpp & .h. Вроде тект получается. Но от оригинального отличается наличием разных "служебных" символов. Можно ли это как-то исправить? Код следующий: if (curDoc == null) return;
string cppText = "#include \"StdAfx.h\"\r\n" +
"#include \"StringTable.h\"\r\n\r\n" +
"CStringTable::CStringTable(void)\r\n" +
"\r\n\r\n" +
"CStringTable::~CStringTable(void)\r\n" +
"\r\n\r\n" +
"
string hText = "#pragma once\r\n\r\n" +
"#define CHANNEL_NAME_LENGTH 12\r\n" +
"#define CHANNEL_UNIT_LENGTH 8\r\n\r\n" +
"typedef char ch_name[CHANNEL_NAME_LENGTH];\r\n" +
"typedef char ch_unit[CHANNEL_UNIT_LENGTH];\r\n\r\n" +
"class SChannel\r\n" +
";\r\n\r\n" +
"class CStringTable\r\n" +
"
foreach (XmlNode KanalFamNode in BausteinNode.ChildNodes)
";
if (KanalNode.SelectSingleNode("descendant::ID").InnerText != KanalFamNode.ChildNodes.Count.ToString()) curKanal = curKanal + ",\r\n";
cppText = cppText + curKanal;
}
cppText = cppText + "\r\n};\r\n\r\n";
}
else cppText = cppText + ";\r\n\r\n";
}
}
cppText = cppText + "\r\n};";
richTextBox2.Text = cppText;
hText = hText + "\r\n};";
richTextBox3.Text = hText;
В тексте видны все \t, \par, \font и т.д. Как их убрать?
-
А вот что получается: }
\viewkind4\uc1\pard\lang1049\f0\fs17 #include "StdAfx.h"\par
#include "StringTable.h"\par
\par
CStringTable::CStringTable(void)\par
\\par
\par
CStringTable::~CStringTable(void)\par
\\par
\par
\par
int CStringTable::iEingangAspKonstanteKurve = 1;\par
SChannel CStringTable::aEingangAspKonstanteKurve[] = \par
\\par
\};\par
\par
int CStringTable::iEingangAspLineareKurve = 0;\par
SChannel CStringTable::aEingangAspLineareKurve[];\par
\par
int CStringTable::iEingangAspVibeKurve = 4;\par
SChannel CStringTable::aEingangAspVibeKurve[] = \par
\,\par
\b0"\},\par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspDoppelVibeKurve = 7;\par
SChannel CStringTable::aEingangAspDoppelVibeKurve[] = \par
\,\par
\b0"\},\par
\,\par
\,\par
\,\par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspHubKurve = 3;\par
SChannel CStringTable::aEingangAspHubKurve[] = \par
\b0"\},\par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspKurbelTrieb = 3;\par
SChannel CStringTable::aEingangAspKurbelTrieb[] = \par
\,\par
\,\par
\\par
\};\par
\par
//BAUSTEINE\par
\par
int CStringTable::iEingangAspWaermetauscher = 3;\par
SChannel CStringTable::aEingangAspWaermetauscher[] = \par
\,\par
\,\par
\\par
\};\par
\par
int CStringTable::iAusgangAspWaermetauscher = 0;\par
SChannel CStringTable::aAusgangAspWaermetauscher[];\par
\par
int CStringTable::iAusgangKwWaermetauscher = 5;\par
SChannel CStringTable::aAusgangKwWaermetauscher[] = \par
\,\par
\,\par
\,\par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspBehaelter = 0;\par
SChannel CStringTable::aEingangAspBehaelter[];\par
\par
int CStringTable::iAusgangAspBehaelter = 3;\par
SChannel CStringTable::aAusgangAspBehaelter[] = \par
\,\par
\,\par
\\par
\};\par
\par
int CStringTable::iAusgangKwBehaelter = 2;\par
SChannel CStringTable::aAusgangKwBehaelter[] = \par
\,\par
\,\par
\par
\};\par
\par
int CStringTable::iEingangAspGasZone = 0;\par
SChannel CStringTable::aEingangAspGasZone[];\par
\par
int CStringTable::iAusgangAspGasZone = 3;\par
SChannel CStringTable::aAusgangAspGasZone[] = \par
\,\par
\,\par
\\par
\};\par
\par
int CStringTable::iAusgangKwGasZone = 6;\par
SChannel CStringTable::aAusgangKwGasZone[] = \par
\,\par
\,\par
\,\par
\,\par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspDrossel = 1;\par
SChannel CStringTable::aEingangAspDrossel[] = \par
\\par
\};\par
\par
int CStringTable::iAusgangAspDrossel = 0;\par
SChannel CStringTable::aAusgangAspDrossel[];\par
\par
int CStringTable::iAusgangKwDrossel = 2;\par
SChannel CStringTable::aAusgangKwDrossel[] = \par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspFreieWelle = 1;\par
SChannel CStringTable::aEingangAspFreieWelle[] = \par
\\par
\};\par
\par
int CStringTable::iAusgangAspFreieWelle = 1;\par
SChannel CStringTable::aAusgangAspFreieWelle[] = \par
\\par
\};\par
\par
int CStringTable::iAusgangKwFreieWelle = 1;\par
SChannel CStringTable::aAusgangKwFreieWelle[] = \par
\\par
\};\par
\par
int CStringTable::iEingangAspGesteuerteWelle = 1;\par
SChannel CStringTable::aEingangAspGesteuerteWelle[] = \par
\\par
\};\par
\par
int CStringTable::iAusgangAspGesteuerteWelle = 2;\par
SChannel CStringTable::aAusgangAspGesteuerteWelle[] = \par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspZylinder = 1;\par
SChannel CStringTable::aEingangAspZylinder[] = \par
\\par
\};\par
\par
int CStringTable::iAusgangAspZylinder = 17;\par
SChannel CStringTable::aAusgangAspZylinder[] = \par
\,\par
\,\par
\,\par
\,\par
\,\par
\,\par
\,\par
\b0"\},\par
\,\par
\,\par
\b0"\},\par
\,\par
\b0"\},\par
\,\par
\b0"\},\par
\,\par
\\par
\};\par
\par
int CStringTable::iEingangAspTurbomaschine = 2;\par
SChannel CStringTable::aEingangAspTurbomaschine[] = \par
\,\par
\\par
\};\par
\par
int CStringTable::iAusgangAspTurbomaschine = 0;\par
SChannel CStringTable::aAusgangAspTurbomaschine[];\par
\par
int CStringTable::iAusgangKwTurbomaschine = 7;\par
SChannel CStringTable::aAusgangKwTurbomaschine[] = \par
\,\par
\,\par
\,\par
\,\par
\,\par
\,\par
\\par
\};\par
\par
\par
\};\f0\par
}
-
В тексте видны все \t, \par, \font и т.д. Как их убрать?
Если они на самом деле внутри значений узлов и атрибутов (то есть это не косяк с чтением xml), то регулярными выражениями убить их думаю будет очень легко.
-
>richTextBox2.Text = cppText; >... > richTextBox3.Text = hText;
richTextBox2.Rtf = cppText; ... richTextBox3.Rtf = hText;
?
-
нашла... надо писать в файл верез файловые операции (в моем случае я пишу через StreamWriter) а не richTextBox.SaveFile(path).
-
DiamondShark © (25.01.07 17:10) [3]
не работает. Неверный формат данных ((
JFK&MM_extramarital_son (25.01.07 17:08) [2]
с чтением хмл это не имеет связи, я так думаю. Это добавляется в период формирования строки ((
-
не использовать richtextbox ?
-
Игорь Шевченко © (25.01.07 17:14) [6]
а что использовать? пользователь же должен видеть, что получилось ))
-
TextBox использовать.
И в заблуждение не надо вводить. В исходном вопросе ни слова про запись в файл не было.
-
richTextBox2.SaveFile(@"d:\1.txt", RichTextBoxStreamType.PlainText); ?
-
DiamondShark © (25.01.07 17:18) [8]
а вот это "Надо из XML-файла определенного формата с определенной схемой получить исходники .cpp & .h.". Т.е. из ФАЙЛА с расширением .xml, надо получить ДВА с расширениями .cpp & .h.
короче потоки рулят ))
|