Results 1 to 8 of 8

Thread: Eerste bug + vraagje

  1. #1
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269

    Eerste bug + vraagje

    Als ik je demo-app draai krijg ik een foutmelding, zie bijgesloten screenshot. Ik gebruik overigens de standaard formule, maar ik vermoed dat er misschien iets fout is gegaan met DecimalSeperator o.i.d., heb even wat getraced:


    X = 1 -> CalcString -> FixString -> FunctionImprovement -> ExtractParams -> functie = X/10 -> StrToValue(0,1) -> whoops!


    Misschien mis ik wat, maar 't komt er op neer dat ie 0,1 niet wil parsen...




    Daarnaast: voor elk punt in de grafiek moet de hele functie bij elke aanroep geparsed worden. Ik heb geen idee in hoeverre het lastig is te wijzigen met de huidige opstelling, maar een idee zou misschien zijn om een soort van 'compiled' code te kunnen produceren, een intern formaat of iets dergelijks waardoor je de string slechts 1 keer hoeft te parsen en later de 'compiled' vorm kan gebruiken om de waarden te berekenen, dit zou naar mijn idee ongelooflijk veel processing tijd kosten naarmate de functies groter worden...



    Voorderest ziet het er zeker leuk uit, klasse!
    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	calcstringerror.png 
Views:	457 
Size:	5.2 KB 
ID:	402  
    Qui custodiet ipsos custodes

  2. #2
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Ter aanvulling: als ik in m'n Landinstellingen de DecimalSeperator op een '.' zet werkt het wel prima...
    Qui custodiet ipsos custodes

  3. #3
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Juist,

    Ik had me op de eerste plaats bezig gehouden met de '.' als seperator. Dit omdat de ',' gebruikt wordt om parameters te scheiden, maar dit kan natuurlijk weer vervangen worden door bv een '|' waardoor ik rekening kan gaan houden met de DecimalSeperator.

    verder.. Hoe zou jij een gecompilede versie maken?

    [even gedacht]

    Een nieuwe classe die de acties bijhoudt die moeten worden uitgevoerd zou wel eens iets kunnen zijn...
    Als je iets van tips/tricks zou kunnen geven voor de compile-versie: Ik houd je niet tegen
    !

  4. #4
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Ik heb nog geen echte ideen eigenlijk wat betreft het 'compilen', hangt ervan af hoe het intern afgehandeld wordt. Als ik het zo even bekeken heb zou het mogelijk moeten zijn om van een functie een stel "simpele" berekeningen te maken, zo wordt 't in feite ook gedaan op dit moment, maar dat vertaal je dan even naar 'gecompilede code', zoals:


    (ANS = antwoord van vorige 'simpele berekening', zo gekozen omdat m'n rekenmachine dat ook kent )

    SIN( X / 10 ) * 50:
    - X / 10
    - Sin(ANS)
    - ANS * 50


    ...op deze manier heb je dus van de functie een lineaire set gemaakt, wat je vrij simpel op kan slaan. Als je dit dan opslaat op een manier die razendsnel weer uit te lezen is (als in: geen strings hoeven parsen) dan kan je na 1x compilen de functie vrij snel een aantal keer uitvoeren...

    Bij het uitvoeren van 1 enkele functie heb je dan misschien enigzins overhead van het compilen en daarna pas uitvoeren, maar het verschil is dan echt minimaal (als in: niet merkbaar), terwijl het voorderest aanzienlijk zal schelen...
    Qui custodiet ipsos custodes

  5. #5
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Ik zat ook bij zo'n soort lijst ( hoe was t ook weer, gmta )

    Over die overhead: ik zou even anders te werk gaan, een soort van "MakeCompileCalcString". Dus dat die functie je compilede string maakt en dat je die weer verder kunt gebruiken. De overhead ben je dan kwijt voor simpele functies omdat je dan gewoon geen gebruik maakt van die functie
    !

  6. #6
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Originally posted by SVG_1986
    De overhead ben je dan kwijt voor simpele functies omdat je dan gewoon geen gebruik maakt van die functie

    Correct me if I'm wrong, maar simpele functies moet je toch ook 'compilen'? Anders hou je altijd strings over die je moet gaan parsen, lijkt me veel simpeler om hier een intern formaat voor te gebruiken, bv een set erin opslaan die aangeeft wat de operator is enzo
    Qui custodiet ipsos custodes

  7. #7
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    owja... Natuurlijk, zat nu even bij iets anders Excuses.

    Ik heb ook een functie OperatorCount(). Hierdoor kan ik dus ( hoe kan het ook anders ) het aantal operators mee tellen. Misschien zoiets als:

    [code]
    If OperatorCount( Str ) > 5 then
    //make use of compiled strings
    else
    //do not make use of compiled strings

    moet dan natuurlijk wel even kijken hoeveel operators wel compiled nodig hebben etc of door de gebruiker laten bepalen wanneer een compilede versie nodig is
    !

  8. #8
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Oke,

    het is weer even geleden dat ik hier heb gepost maar..

    Ik heb een nieuwe classe geschreven, deze classe in geschreven om een string te berekenen. Zo snel mogenlijk natuurlijk. Ik zal de unit hier morgen posten.

    Deze versie is sneller in het kwadraat ( om het maar even goed uit te drukken, omdat de tijdduur ligt aan het aantal operators in een string )
    Last edited by SvG; 23-Nov-02 at 22:23.
    !

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. DBGrid - eerste cell selecteren
    By Jelmer in forum Algemeen
    Replies: 3
    Last Post: 01-Feb-04, 15:36
  2. DataSetPageProducer slaat eerste parameter over
    By Marcel_mtr in forum WebDelphi
    Replies: 6
    Last Post: 26-Jan-04, 14:07
  3. DBlist pakt eerste regel niet
    By Jelmer in forum Algemeen
    Replies: 6
    Last Post: 05-Jan-04, 15:44
  4. Replies: 21
    Last Post: 10-Nov-02, 18:16

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •