Jeg vil lige sige tak til dig.
Jeg kunne godt brge noget af det du skrev, og det gav mig åbenvart i anden
måde at se tingene på. Så nu har jeg fået lavet tilstandsmaskinen til at
virker perfekt.
Så tak for hjælp, det var kanon.
Forsat go' søndag.
!G!
----------------------------------------------------------------------------
klip
"R. A. Larsen" <r_larsen@image.dk> skrev i en meddelelse
news:VA.0000014d.0005b899@r_larsen...
> "!G!" <gugge@email.dk> wrote:
> >
> > Tak for svar ..
> >
> > Men det er fordi, jeg prøver at skrive en tilstandsmakskine det læser en
> > fil. Teksten mellem " " skal vises, men
> > al tekst mellem ' ' skal ikke vises med.
> > Det er et lille problem.
>
> [al koden klippet væk]
>
> Dit store problem ligger (som du nok kan regne ud) i funktionen anftegn().
> Jeg kan se at du bruger fire states, men i din beskrivelse har du kun
> tre??? Din kode er faktisk næsten umulig at finde ud af uden at lave et
> diagram.
>
> Jeg vil give dig en fremgangsmåde, som du kan bruge når du laver
> tilstandsmaskiner:
>
> Lav en tabel med hvert state. For hvert state opskriver du: de events du
> vil reagere på, hvilket event du så skal skifte til og hvilken action du
> vil returnere. Jeg er begyndt på den nedenfor ("*" under Event betyder
"alt
> andet"):
>
> States: ST_UDENFOR, ST_INDTEGN ( " ), ST_PING_INDTEGN ( " ' )
>
> GlState Event NytState Action
> -----------------------------------------
> ST_UDENFOR PING ST_UDENFOR A_NONE
> ST_UDENFOR ANFTEGN ST_INDTEGN A_NONE
> ST_UDENFOR * ST_UDENFOR A_NONE
>
> Ud fra ovenstående tre linjer kan jeg se to ting:
> 1. jeg skal kun skifte state, hvis Event er ANFTEGN, og
> 2. Action er altid A_NONE.
>
> Jeg ville så skrive dem således:
>
> switch(state)
> {
> case ST_UDENFOR:
> switch(event)
> {
> case ANFTEGN: /* " */
> state = ST_INDTEGN;
> return A_NONE;
>
> default: /* alt andet */
> return A_NONE;
> }
>
> Kan du se, hvor simpelt det hele bliver?
>
> Jeg kunne godt fortsætte med de andre states, men det gider jeg ikke. Jeg
> håber dog, at du har fået så mange oplysninger, at du nemt kan fortsætte
> selv.
>
> MVH, René
> --
> Using Virtual Access
>
http://www.vamail.com
>