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: 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)
  • RE: Not an ARRAY reference. Problems reading a simple XML file
    ... If you look at $data for the problem file its not an array at that point. ... Problems reading a simple XML file ... This e-mail may contain confidential information. ... Any opinion expressed in this e-mail is personal to the sender ...
    (perl.beginners)