Parse data

Tags:    c++

Hej

Jeg er igang med at lave noge programmer som skal kunne parse forskellige former for data. Ligenu er arbejder jeg på at kunne parse html data og xmldata(rss feeds). Jeg havde lavet noget der virkede på en måde, ved først at hente dataerne fra nettet af, så gemte jeg dem i en temp fil, som jeg så læste linie for linie og gjorde forskellige ting med dataterne. Problemet kommer når dataerne f.eks. er skrevet på en linie på siden, eller der er blanke linier.

Jeg kunne godt tænke med at høre lidt om hvordan det er bedst at parse sådan noget data, jeg har tænkt lidt over det, og jeg er nået frem til at jeg tror man skal hente alle data også gemme dataerne i en string som man parser tegn for tegn, men jeg ved ikke helt hvordan jeg skal gøre det. Så er der nogen der kan give mig nogle ideer til hvordan jeg skal parse dataerne.

Mvh
Søren



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Måske du vil have gang i Bison ?
http://www.gnu.org/software/bison/

Hvis det er simplere tekst ville jeg bruge et regular expression library.

Du kunne også vælge at hente og parse dataene med et andet sprog (jeg bruger Ruby til den slags) som så lægger dataene i en database eller andet, som er lettere at læse, og så lave et program i C eller whatever som bruger dem.


Skulle selv lige til at nævne reg.udtryk :-) Boost har et glimrende biblotek/library til dette.

http://www.boost.org/

http://www.boost.org/libs/regex/doc/index.html

http://www.boost.org/libs/regex/doc/syntax.html




Det lyder for mig som om du vil parse xml data?

Det nemmeste er at parse xml data med en decideret xml parser. Der findes en række forskellige xml parsere som man kan bruge gratis.

Eksempelvis kan du hente en msxml parser på nedenstående url.

http://msdn.microsoft.com/XML/XMLDownloads/default.aspx


Og du kan finde eksempler på brugen af parseren på følgende url.

http://msdn.microsoft.com/XML/XMLCodeSamples/default.aspx


Hth





Indlæg senest redigeret d. 21.01.2007 14:11 af Bruger #10448
Hej Jess

Ja på en måde, men vil gerne vide mere generalt om hvordan man skal parse data, så jeg vil gerne lære at gøre det selv. Så vil gerne have lidt hjælp til at lære at bruge grundlegende funktioner til at parse data.

Mvh
Søren



Måske du vil have gang i Bison ?
http://www.gnu.org/software/bison/

Hvis det er simplere tekst ville jeg bruge et regular expression library.

Du kunne også vælge at hente og parse dataene med et andet sprog (jeg bruger Ruby til den slags) som så lægger dataene i en database eller andet, som er lettere at læse, og så lave et program i C eller whatever som bruger dem.



Tak for linksne, men det var ikke lige det jeg havde tænkt mig. Jeg har fundet en måde at gøre det på, jeg henter filen og parser alle dataene ved at splite den ned i mindre del, også ud fra det finde de ting jeg skal bruge.

Jeg lukker



t