Allmänt meddelande

Collapse
No announcement yet.

Tilldelade namn/ parantesdjup

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Tilldelade namn/ parantesdjup

    Lasse!

    För något år sedan beskrev du hur man kommer runt problemet med för stort parantesdjup resp. tilldelade namn.
    Tyvärr kan jag inte hitta detta igen. Tacksam för repetition.
    Tack!
    HMS

  • #2
    http://www.frndsw.com/vbulletin/show...minnesreferens

    http://www.frndsw.com/vbulletin/show...minnesreferens

    Comment


    • #3
      Återkommer med undringar om parantesnivåer och minnesreferenser.

      När man skrivit ett script som innehåller ett antal minnesreferenser och till slut försöker omsluta dessa med ett intradayfrefix börjar ofta problemen. Under ”testa syntax” ser man då att antalet parantesnivåer är 11 eller högre. För att råda bot på detta får man i vissa fall göra om ganska många ovanliggande rader till minnesreferenser och ibland hjälper ingenting, för till slut skrivs det i syntaxkontrollen 0 för antalet parantesninvåer och scriptet fungerar inte.

      Jag har läst allt som är skrivet om detta här i forumet men kanske ändå har missat någon viktig detalj.

      namn1:=uttryck1
      namn2:=uttryck2
      osv.
      i30(
      minnesref1=funktioner()
      minnesref2=funktioner()
      osv.
      sistafunktionen()
      )

      Frågor som uppstår:
      Vad är det för skildnad på uttryck och funktioner()? Alla uttryck skrivs ju i form av en funktion eller hur? Är det endast så att ett ”uttryck” föregås av := ?

      Kan ”namnet minnesref1” användas i funktionen för minnesref2? (Det brukar dock funka.)

      Har tomma rader eller rader omslutna med {} bland minnesreferenserna någon betydelse?

      Hur kan man undvika att minnesreferenserna ”blir onödigt små” som kan bli fallet om man bara raderar ”: tecknet” för ett antal rader uppåt? Senast fick jag endast tre rader med tilldelade namn kvar innan referenserna var tvungna att börja. Dessa rader innhöll bare en LinReg på medianen och ett enkelt medelvärde.

      Finns det något smart sätt vilka ingredienser som bör namnges först i ett script för att få så litet antal minnesreferenser som möjligt?

      Tacksam för mer belysande information om vad som verkligen händer i scripten.

      Åke

      Comment


      • #4
        Man kan säga att utryck kan vara funktioner men måste inte vara det. Det kan vara bara en definition av ett tal man använder osv.

        I en minnesreferens måste det vara minst en funktion.

        Ja, olika minnesreferenser kan användas i varandra precis som uttrycken med tilldelade namn dvs := rader.

        Tomma rader eller kommentarmarkerade rader i minnesreferenserna får förekomma.

        När man slår i 10-parentestaket så är det naturligt att man gör som du säger. Ofta blir det att man plockar bort : i ett antal rader tills det går igenom.

        Det är väl lite svårt att ge kortfattad förklaring hur man placerar olika delar i scripten.

        Bygger man två eller flera ben bland minnsreferenserna genom att binda ihop olika delar ovanifrån s a s så brukar det bli överskådligt, och det är lätt att plocka bort något deluttryck när man letar fel för det inte uppför sig som man vill osv.

        Så några olika ben som bygger så mycket som möjligt men någorlunda jämnt fördelat. Så det inte blir några som bygger 2-3 nivåer, och ett på 8 nivåer.

        Så binder man i de sista stegen ihop med and() or() osv bland minnsreferenser brukar det bli ok.

        Eftersom hänvisning till en minnesreferens från en annan rad för minnesreferens bygger ju inte extra pentesdjup alls.

        Och ibland har jag stuvat om ordningen på raderna med definitioner för att det skall passa att bara ytöka minnesreferenserna nedifrån. När jag gjort om script för kunder så har det ofta varit att göra detta.

        Vet inte om dessa förklaringar blir någon hjälp, men det är inte lätt i allmänna termer eftersom scripten kan se så olika ut.

        Comment

        Working...
        X