Re: Question on arrays (newbie)





See

9/21/2005
XmlSerialization with IDictionary and CollectionBase Objects

http://sholliday.spaces.live.com/blog/

for some ideas.



"alexseys" <alexseys@xxxxxxxxxxx> wrote in message news:%23gLgv3URHHA.5032@xxxxxxxxxxxxxxxxxxxxxxx
I am trying to rewrite a vbs script in c# that collects data from a pc and writes it into an xml file
I have figured out how to write the file with data in an array. Smple of code below.
But that seems quite inefficient considering I have to collect many many properties for different items
The number of elements will differ from item to item
Does anyone have an idea on how to create a function that will write xml file without explicit knowlege what is inside if an array?
Thank You for your help
alexseys

XmlTextWriter bankWriter = null;
bankWriter = new XmlTextWriter("c:\\test1.xml", null);
bankWriter.Formatting = Formatting.Indented;
bankWriter.Indentation = 6;
bankWriter.Namespaces = false;
bankWriter.WriteStartDocument();
bankWriter.WriteStartElement("computer");
comp.GetDiskDrive();
foreach (Disk disk in comp.disks)
{
bankWriter.WriteStartElement("component");
bankWriter.WriteStartElement("type");
bankWriter.WriteString("Hard Disk");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("name");
bankWriter.WriteString(disk.caption);
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("attr");
bankWriter.WriteStartElement("name");
bankWriter.WriteString("Manufacturer");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("value");
bankWriter.WriteString(disk.Manufacturer);
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("attr");
bankWriter.WriteStartElement("name");
bankWriter.WriteString("Size");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("value");
bankWriter.WriteValue(disk.size);
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("attr");
bankWriter.WriteStartElement("name");
bankWriter.WriteString("Interface");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("value");
bankWriter.WriteValue(disk.InterfaceType);
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
}

foreach (Memory memchip in comp.memchips)
{
bankWriter.WriteStartElement("component");
bankWriter.WriteStartElement("type");
bankWriter.WriteString("Physical Memory");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("name");
bankWriter.WriteString(memchip.Caption);
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("attr");
bankWriter.WriteStartElement("name");
bankWriter.WriteString("PositionInRow");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("value");
bankWriter.WriteString(memchip.PositionInRow);
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("attr");
bankWriter.WriteStartElement("name");
bankWriter.WriteString("Capacity");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("value");
bankWriter.WriteValue(memchip.Capacity);
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("attr");
bankWriter.WriteStartElement("name");
bankWriter.WriteString("FormFactor");
bankWriter.WriteEndElement();
bankWriter.WriteStartElement("value");
bankWriter.WriteValue(memchip.FormFactor);
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
bankWriter.WriteEndElement();
}

bankWriter.WriteEndDocument();
bankWriter.Flush();

Relevant Pages

  • Re: Not an ARRAY reference
    ... If I have 2 or more 'menuitems' in my xml file it ... if i only have one like the code below I get "Not an ARRAY ... > reference" at the foreach line - any ideas why? ...
    (comp.lang.perl.misc)
  • RE: writing to a specific point in an array file
    ... Hi Melanieab, ... would be in an XML file rather than a text file and trying to manipulate ... basically writing an empty string over the current row. ... > array file, but I wasn't sure how to replace just one item. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: csproj/vbproj definition available?
    ... and A Project represents an MSBuild ... save to an XML file, preserving most whitespace and all XML comments." ... foreach ... foreach (BuildItemGroup itemGroup in project.ItemGroups) ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: How to dynamically resize an array?
    ... In the previous version of the program I just gave the array a large value eg. 40 as it is unlikely any season of a TV series will have that many episodes. ... The only other way would be to read the xml file twice, firstly counting the number of episodes and then declaring the array, and then read it again and fetch in the episode data. ... XPATH is specifically designed to search for the "DOM" of the XML documentt to returns a list of elements by providing it a query statement. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: ArgumentException thrown when converting a memorystream to image
    ... the following code will read the contents from a> file and place them into a byte array. ... >> As I read the xml file in .NET, I parse my xml, retrieve this string, and>> try to convert it into an Image object or Bitmap in the following code. ...
    (microsoft.public.dotnet.languages.csharp)

Loading