"Jesper" <news@skydiver.dkk> skrev i en meddelelse
news:a49c22$q67$1@sneaky.wowweb.dk...
> Jeg sidder og skriver på et program der skal læse en vilkårlig stor mængde
> data fra en socket, og parse dele af den heletiden. Jeg havde jeg tænkt
mig
> at gøre ved at læse en del ind i en buffer der er stor nok til at mindst
et
> element kan parses og så læse noget mere ind.
> Hvordan gør man det i praksis, hvad er smartest. Når nu en del er læse og
> man skal fylde op, flytter man så det resterende tilbage og fylder op,
> eller laver man noget RR, det er jo hurtigere, men så kan man heller ikke
> læse dataet som en sammenhængende streng..
>
Hej Jesper...
Jeg kan ikke hjælpe så meget i c, men jeg har for et halvt års tid lavet en
instant messaging javaklient baseret på XML... Hvor man hele tiden skal være
klar til at modtage data i XML - dvs. tekst. Måden jeg løste det på var ved
at køre tekststrengen igennem en "parser" for hver gang jeg modtog et
bogstav. Ved så at opbygge parseren således at den ledte efter "<" og ">"
kan man nemt definere hvornår et xml-tag er modtaget og således sende det
videre til nærmere analyse, og begynde med et nyt 'tag'. Det er ihvertfald
en holdbar løsning i mit tilfælde.
> Der må være en standard C måde at gøre det på??
Jeg er selv ret ny til c så der kan jeg desværre ikke hjælpe... endnu