Я работаю над системой классификации текста и пытаюсь читать слова в текстовых документах, разбирать их, сохранять в словаре и сохранять в XML.Сохранить словарь в XML-файле
fileNames = openFileDialog1->FileNames;
StreamReader^ objReader = gcnew StreamReader(fileNames[0]);
String^ strReader = objReader->ReadToEnd(); //read it to a string
objReader->Close();
//cut the file up
String^ delimStr = L"\r,\t,\n,' ','.',','"; //pull out the return,tabs,newline
array<Char>^ delimiter = delimStr->ToCharArray();//transform into an array
array<String^ >^strSplit = strReader->Split(delimiter);//split up the file
System::Collections::IEnumerator^ myenum = strSplit->GetEnumerator();//get enumerators
Dictionary<String^, int>^ saveWords = gcnew Dictionary<String^, int>(StringComparer::InvariantCultureIgnoreCase);
int position=-1;
//output the file
while (myenum->MoveNext())//enumerate through it
{
position++;
try{
saveWords->Add((Convert::ToString(myenum->Current)),0);
}
catch (Exception ^){
//some code
}
}
Итак, как я должен использовать XMLSerializer?
P.S. Извините, если код беспорядок и не оптимизирован. Я новичок во всем этом (текстовый синтаксический анализ, словарь, XML), и до сих пор я просто пытаюсь заставить его работать.
Означает ли это интеграцию класса и вызов SerializableDictionary из основного кода? – Hearty
Не уверен, что я вас не устраивает, но я думаю, что это да. Вы должны использовать этот новый SerializableDictionary, а затем вызвать WriteXml для получения XML-репрезентации словаря –
Не существует ли XMLSerializer, который можно использовать с .Net 3.5? Или единственный способ - использовать этот пользовательский класс из предоставленной вами ссылки? Я прошу об этом, потому что у меня появились ошибки. Я не знаю, из-за моей бедной/неправильной реализации, или она действительно не поддерживается. – Hearty