[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [CPROG] Oprettelse af en .rc fil



>> >       n=sscanf(lnbuf,"%30[a-zA-Z]%*[^=]=%80[^\n]",var,val);
....
>> Men skal man anvende lidt mere avanceret input
>> så er "flex" (lex) løsningen.
>> Er det endnu mere avanceret så er det bison + flex (yacc+lex)

> Jeg prøvede din kode og den virker perfekt til mit problem. Jeg prøvede
> at bruge redhats popt, men det kunne jeg ikke rigtig få til at virke.
> Ligemeget, det er alligevel overkill.

> Er det noget kode du selv har lavet eller kommer det et andet sted fra?

Noget jeg huggede/forbedrede fra mine egne småprogrammer.
Jeg faldt over sscanf for en hel del år siden og fandt ud af den
kunne bruges til mange "sjove" ting.

Dog: "fil-udgaven" scanf()/fscanf() er lidt bøvlet/usikker, jeg foretrækker
at først indlæse til en buffer og så "tygge"på bufferen med sscanf()
Så kan jeg også styre bufferstørrelse mv.

Dette minder egentlig om at jeg burde upload'e "pciq"
som er en tekstformatering/udskrivning til HPCL (HPII (+deskjet?) og op)
Kan sætte liniennummre på tekst, lave flere kolonner,
og sammen med groff udskrive manualer med 2 sider per a4-side.
Der sendes i "tekst-mode" til printeren, ikke grafisk som
med:   util -> postscript -> ghostscript -> 


I øvrigt har jeg også nogle mere anvancere C++ templates+rutiner 
(kræver flex++ og bison) som kan indlæse filer i format eksempel:

[Header]
person = "Hansen" "Jens" "xxx"  1999 20 %A &D
adresse = .....

perons43= 
...

[header2]
....

Ideen er at hver variabel kan holde max 10 strenge, 10 heltal
og 10 bogstaver (options eller hvad man nu vil bruge dem til)
Derudover består variable af et navn + evt. et tal .

Egentlig er det ikke beregnet til rc-filer men er opsætningsfiler 
til et program, som normalt konfigureres via menu/browser.
Jeg kan dog ikke lide binære filer til dette, så jeg lavede
en "tekst" udgave.

Flex er dog ikke helt C++ klar, og man skal pille i flexs include-fil 
(class-definitionen af FlexLexer) :(


Men egentlig så bør man kigge på flex (C-udgaven) man kan let
lave avanceret indlæsning med denne selv uden brug af bison.


-- 
mvh Frank Damgaard  | http://home3.inet.tele.dk/frda/



 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:08 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *