[C#]Welke interne Datastructuur voor ASCII naar XML

Pagina: 1
Acties:

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Hallo,

Ik zal de topic titel even verduidelijken.

Ik heb een ASCII bestand dat moet omgezet worden naar XML.
Het ASCII bestand krijg ik via een HTTP POST aangeleverd.

De structuur van het ASCII bestand is als volgt:

code:
1
2
3
4
4234,010320050823,010320050837,00653465,00786
4234,010320050837,010320050893,00654355,032
212,010320051151,010320050893,00654355,032
2442,010320051814,010320051956,0013255,0786


werknemernummer, starttijd (DDMMYYYYHHmm), eindtijd,projectnummer en activiteit.

Dit is niet gesorteerd.
Nu moet het omgezet worden naar XML gegroepeerd op bijvoorbeeld werknemer nummer.

Welke interne structuur kan hier het best voor gebruikt worden om de boel eerst in te lezen, te groeperen en dan om te zetten naar XML dmv bijvoorbeeld de XMLTextWriter?

Ik zit hier al even mijn hoofd op te breken maar misschien hebben jullie een idee?

alvast bedankt!

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

1. de string (neem aan dat het dat is) te splitten op newline.
2. dan elk array element te splitten op "," zodat je een multidimensionaal array string[n,5] krijgt
zodat je elk deel apart kan aanroepen,
3. array sorteren op eerste colomn .
4. dan vervolgens dat ding doorlopen en elke x een xml element aanmaken toevoegen aan xmlDocument en
5. xmlDocument.Save()?

Of niet natuurlijk...


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 18:32
Misschien is het een idee om er gewoon objecten van te maken?
Dus een werknemer object met wat properties, een project object met wat properties, deze op de juiste manier aan elkaar refereren en vervolgense de hele meuk te XmlSerializen?

Roomba E5 te koop


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-02 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Desnoods kan je alles inlezen in een Dataset; de onderliggende datatable sorteren wat je wilt en vervolgens naar XML schrijven door middel van de WriteXML method (oid)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Dat van die dataSet is wel een goed idee volgens mij.
Ik was ook allemaal aan het zoeken naar array's etc.

Je kunt idd datasets natuurlijk ook zonder DB gebruiken!

Ik ga het eens proberen, thx voor het meedenken.
Misschien is het een idee om er gewoon objecten van te maken?
Dus een werknemer object met wat properties, een project object met wat properties, deze op de juiste manier aan elkaar refereren en vervolgense de hele meuk te XmlSerializen?
Dan word het sorteren volgens mij wel lastig... in C# 3.0 zou dat wel een goede oplossing lijken iswm OLink (of hoe heet die nieuwe techniek ook al weer)

[ Voor 50% gewijzigd door 4of9 op 04-05-2006 09:49 ]

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-02 14:52

gorgi_19

Kruimeltjes zijn weer op :9

4of9 schreef op donderdag 04 mei 2006 @ 09:47:
Dan word het sorteren volgens mij wel lastig... in C# 3.0 zou dat wel een goede oplossing lijken iswm OLink (of hoe heet die nieuwe techniek ook al weer)
Hoezo lastig? Je object implementeert IComparable / IComparable(Of T) en je kan vervolgens je Arraylist / List / whatever sorteren dmv de Sort method.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Ja je hebt gelijk, hoewel de dataset me het meest aanspreekt.
ander moet ik eerst de objecten gaan vullen, comparen, in een array van type<T> gaan stoppen en dan sorteren. (hoewel ik me nog in de compare moet verdiepen)

thx iig!

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-02 14:52

gorgi_19

Kruimeltjes zijn weer op :9

4of9 schreef op donderdag 04 mei 2006 @ 12:12:
Ja je hebt gelijk, hoewel de dataset me het meest aanspreekt.
ander moet ik eerst de objecten gaan vullen, comparen, in een array van type<T> gaan stoppen en dan sorteren. (hoewel ik me nog in de compare moet verdiepen)

thx iig!
Niet helemaal; je sorteert de List(Of T) aan de hand van de IComparable :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

ik weet niet of er een standaard dataprovider is voor CSV, maar als die er is kun je'm nog gemakkelijker inlezen in een DataSet en dan in XML exporteren

ASSUME makes an ASS out of U and ME


Verwijderd

IComparable, DataProviders, XmlSerialize, etc., zoeken we niet naar een te ingewikkelde manier?

Als je 't ASCII bestand gewoon sorteert op regel, heb je de boel al gegroepeerd op werknemer. En vervolgens is 't een eitje om dat resultaat regel voor regel te parsen (je hoeft alleen maar te splitsen op ',') en dat om te zetten in iets als:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<Items>
  <Item> 
    <Werknemer>4234</Werknemer>
    <Starttijd>010320050823</Starttijd>
    <Eindtijd>010320050837</Eindtijd>
    <Project>00653465</Project>
    <Activiteit>00786</Activiteit>
  </Item>  
  <Item>
    ...etc.
  </Item>  
</Items>

of naar
code:
1
2
3
4
<Items>
  <Item werknemer="4234" starttijd="010320050823" eindtijd="010320050837" project="00653465" activiteit="00786"/>
  <Item ...etc. />
</Items>

Daar heb je zelfs geen XmlDomDocument voor nodig, gewoon standaard string bewerkingen. Ik weet 't, 't is uiteindelijk minder gemakkelijk uitbreidbaar, maar daar vroeg TS niet om.
Pagina: 1