Subject: | Re: Help with my code please example below
| Date: | Thu, 14 Oct 2021 14:44:34 -0700
| From: | Peter <peterspammenot@whiteknight.email>
| Newsgroups: | pnews.paradox-programming
|
It is not clear exactly what it is yoou are trying to do in terms of
analysing the data but I will assume that each record is one day and you
want to analyse one day at a time.
First thing I would do is create an array of the dates in the table.
Then I would create another dynamic array that would define each "two
week" period. Lastly, set a genfilter() on the table for each period
;//create array of all the dates
;//rough, no error trapping
var
tcu tcursor
ary array[]date
smicnt smallint
endvar
tcu.open(tbl)
scan tcu:
;//assumming date field is unique
ary.addlast(tcu."datefield") ;assuming sort order is ascending
endScan
tcu.close()
;//ary now contains every date in the table
;//next step is to create a dynamic array for two week period start/end
dates
;// e.g. dynary[smicnt] = "10/01/2021 <= 10/14/2021"
;//use this dynamic array to setgenfilter() on the tbl
out of time right now, maybe that gives you direction - or somebody has
a different idea...
Peter
On 10/14/2021 02:13 p.m., Tony wrote:
> "Kevin Zawicki" <numberjack@wi.rr.com> wrote:
>>
>> Thanks Kevin
> If I want to start on the 01/01/2019 then get data every two weeks what does
> the code look like? Sorry Im not very good at this can you show me how this
> code will look please? Tony
>
>>
>>
>> small rough example
>> paste into script for better reading
>>
>> ;// there are many variations on this, Paradox has a robust set of date
> handlers
>> for its age
>> method run(var eventInfo Event)
>> var
>> sDate date
>> eDate date
>> qDate string
>> endvar
>>
>> sDate = today()
>>
>>
>> for cnt from 1 to 5 ;// this loops 5 times, but you can set this to loop
>> until no data or whatever needed or while dStart < today()
>> ;// I avoid while loops or make them have a infinite lopo exit but
> while
>> will work
>>
>> eDate = sDate + 14 ;// set end date two weeks out
>>
>> qDate = ">=" + sDate.string() + ",<=" + eDate.String()
>> ;// greater than or equal - or change dates to plus minus one and do
> not
>> use equal
>>
>>
>>
>> qDate.view()
>>
>>
>>
>> ;// do queries
>>
>> ;//do add to collect table
>>
>> sDate = eDate + 1 ;// set start date to next day after last end date
>>
>> endfor
>>
>> endMethod
>>
>>
>>
>>
>>
>>
>> "Tony" <tracy.fairbrother@btopenworld.com> wrote:
>>>
>>>
>>> Can someone help me with the code below please. I want to put a start date
>>> in and move the code date forward to capture the next set of data. Example
>>> So start 01/07/2019 until 15/07/2019. Do the analysis add to the stats2
>>> table then move on 16/07/2019 until 31/07/2019 do the same add results
> to
>>> stas2 table. I want this to carry on until the end of my data which is
> 12/10/2021.
>>> Not sure what im doing wrong .
>>>
>>>
>>>
>>> proc StartDate(d date) date
>>> ; proc returns start date for given date
>>> ; if date is before 16th, start date is begining of month
>>> if day(d) < 16 then
>>> return( date(month(d),1,year(d)) )
>>> else
>>> return( date(month(d),16,year(d)) )
>>> endIf
>>> endProc
>>>
>>> proc EndDate(d date) date
>>> ; proc returns end date for given date
>>> ; if date is before 16th, end date is 15,
>>> ; if date if 16th or later, end date is end of month
>>> if day(d) < 16 then
>>> return( date(month(d),15,year(d)) )
>>> else
>>> return( date(month(d),daysInMonth(d),year(d)) )
>>> endIf
>>> endProc
>>>
>>>
>>> method run(var eventInfo Event)
>>> var qb query
>>> TC TCursor
>>> dStart, dEnd Date
>>> mStart, mEnd Date
>>> sDate String
>>> mDate String
>>> tab table
>>>
>>>
>>> endVar
>>>
>>>
>>> dStart = date(7,01,2018)
>>> mStart = date(7,16,2018)
>>> ; and now start looping
>>> while dStart < today()
>>> dStart = StartDate(dStart)
>>> dEnd = EndDate(dStart)
>>> mStart = StartDate(mStart)
>>> mEnd = EndDate(mStart)
>>> ; create a condition for date ex: ">=1.1.2018 , <=15.1.2018"
>>> sDate = ">=01/07/2018,<="+string(dEnd)
>>> ; and now do something with this string
>>> ; put here your querys and do smething with them
>>>
>>> mDate = ">="+string(mStart) + ", <="+string(mEnd)
>>>
>>>
>>>
>>> qb= Query
>>> ANSWER: :PRIV:ANSWER.DB
>>>
>>> OPTIONS: NO AUXILIARY TABLES
>>> Stats1.DB | Race name |
>>> Delete | not blank |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>> qb= Query
>>> ANSWER: :WORK:Stats1.DB
>>>
>>> Stats1.DB | Race name | Racetime | Race No | Date | Grade | Distance
>> |
>>>
>>> | Check | Check | Check | Check | Check | Check
>
>> |
>>>
>>>
>>> Stats1.DB | Race type | TfGoing | Going | Pos | Btn | Trap | Name
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
>>> |
>>>
>>> Stats1.DB | Age | Sex | Bend.1 | Bend.2 | Bend.3 | Bend.4 | Comments
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
>>
>>> |
>>>
>>> Stats1.DB | ISP | TFR | Official time | Break time | Trainer | Betfair
>>> |
>>> | Check | Check | Check | Check | Check | Check
>>> |
>>>
>>> Stats1.DB | Race name_1 | Racetime_1 | Race No_1 | Date_1 | Grade_1 |
>>> | Check | Check | Check | Check | Check |
>>>
>>> Stats1.DB | Distance_1 | Race type_1 | TfGoing_1 | Going_1 | Pos_1 | Btn_1
>>> |
>>> | Check | Check | Check | Check | Check | Check
>>> |
>>>
>>> Stats1.DB | Trap_1 | Name_1 | Age_1 | Sex_1 | Bend.1_1 | Bend.2_1 |
>>> | Check | Check | Check | Check | Check | Check |
>>>
>>> Stats1.DB | Bend.3_1 | Bend.4_1 | Comments_1 | ISP_1 | TFR_1 |
>>> | Check | Check | Check | Check | Check |
>>>
>>> Stats1.DB | Official time_1 | Break time_1 | Trainer_1 | Betfair_1 | RaceN
>>> |
>>> | Check | Check | Check | Check | Check
>>> |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>>
>>> qb=Query
>>> ANSWER: :WORK:Races.DB
>>>
>>> DogsDB.DB | Race name | Racetime | Race No | Date
>
>>
>>> | Grade |
>>> | Check _join3, Crayford | Check | Check | Check _a,~mDate |
>> Check
>>> |
>>> | Check _join3 | Check | Check | Check <_a |
>> Check
>>> |
>>>
>>> DogsDB.DB | Distance | Race type | TfGoing | Going | Pos | Btn
>
>>
>>> |
>>> | Check _join2 | Check | Check | Check | Check | Check
>>> |
>>> | Check _join2 | Check | Check | Check | Check | Check
>>> |
>>>
>>> DogsDB.DB | Trap | Name | Age | Sex | Bend.1 | Bend.2 |
>>
>>> | Check | Check _join1 | Check | Check | Check | Check |
>>
>>> | Check | Check _join1 | Check | Check | Check | Check |
>>
>>>
>>> DogsDB.DB | Bend.3 | Bend.4 | Comments | ISP | TFR | Official time
>>> |
>>> | Check | Check | Check | Check | Check | Check |
>>> | Check | Check | Check | Check | Check | Check |
>>>
>>> DogsDB.DB | Break time | Trainer | Betfair |
>>> | Check | Check | Check |
>>> | Check _b,calc _b*0 as RaceN | Check | Check |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>> play("RaceNo.ssl")
>>>
>>> qb=Query
>>> ANSWER: :WORK:ANSWER.DB
>>>
>>> Races.DB | Race name | Racetime | Race No | Date | Grade | Distance
> |
>>>
>>> | Check | Check | Check | Check | Check | Check
> |
>>>
>>>
>>> Races.DB | Race type | TfGoing | Going | Pos | Btn | Trap | Name
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
>>> |
>>>
>>> Races.DB | Age | Sex | Bend.1 | Bend.2 | Bend.3 | Bend.4 | Comments
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
>
>>
>>> |
>>>
>>> Races.DB | ISP | TFR | Official time | Break time | Trainer | Betfair
>>> |
>>> | Check | Check | Check | Check | Check | Check |
>>
>>>
>>> Races.DB | Race name_1 | Racetime_1 | Race No_1 | Date_1 | Grade_1 |
>>> | Check | Check | Check | Check | Check |
>>>
>>> Races.DB | Distance_1 | Race type_1 | TfGoing_1 | Going_1 | Pos_1 | Btn_1
>>> |
>>> | Check | Check | Check | Check | Check | Check
>>> |
>>>
>>> Races.DB | Trap_1 | Name_1 | Age_1 | Sex_1 | Bend.1_1 | Bend.2_1 | Bend.3_1
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
>
>> |
>>>
>>>
>>> Races.DB | Bend.4_1 | Comments_1 | ISP_1 | TFR_1 | Official time_1 |
>
>>> | Check | Check | Check | Check | Check |
>>>
>>> Races.DB | Break time_1 | Trainer_1 | Betfair_1 | RaceN |
>>> | Check | Check | Check | Check >0,<=8 |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>>
>>>
>>> tab.attach("answer")
>>> tab.add("Stats1",True,False)
>>>
>>> qb=Query
>>> ANSWER: :WORK:NNett.DB
>>>
>>> Stats1.DB | Race name | Racetime | Race No | Date | Grade | Distance
>>> |
>>> | Check | Check | Check | Check | Check A.. | Check 380 |
>>
>>>
>>> Stats1.DB | Race type | Pos | Trap | Name | Age | Sex | ISP
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check |
>>
>>>
>>> Stats1.DB | Betfair |
>>> | Check |
>>>
>>> Stats1.DB | TFR_1
>
>>
>>>
>
>>
>>> |
>>> | _a,calc _a*0 as RT2,calc _a*0 as RT2P,calc _a*0 as RT2C,calc _a*0
>> as
>>> RT4,calc _a*0 as RT4P,calc _a*0 as RT4C,calc _a*0 as RT6,calc _a*0 as RT6P,calc
>>> _a*0 as RT6C |
>>>
>>> Stats1.DB |
>>> |
>>>
>>> Stats1.DB | RaceN
>
>>
>>> |
>>> | calc _a*0 as BT6,calc _a*0 as RT6P,calc _a*0 as RT6Avg,calc _a*0
> as
>>> Tracp P,calc _a*0 as BT,calc _a*0 as Nocr |
>>>
>>> EndQuery
>>>
>>>
>>> qb.executeQBE()
>>>
>>>
>>>
>>> qb=Query
>>> ANSWER: :WORK:Adjtimes.DB
>>>
>>> Stats1.DB | Race name | Racetime | Race No | Date | Grade | Distance
>> |
>>>
>>> | Check | Check | Check | Check | Check | Check |
>>>
>>> Stats1.DB | Race type | TfGoing | Going | Pos | Btn | Trap | Name
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
> |
>>>
>>>
>>> Stats1.DB | Age | Sex | Bend.1 | Bend.2 | Bend.3 | Bend.4 | Comments
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check |
>
>>>
>>> Stats1.DB | ISP | TFR | Official time | Break time | Trainer | Betfair
>>> |
>>> | Check | Check | Check | Check | Check | Check
> |
>>>
>>>
>>> Stats1.DB | Race name_1 | Racetime_1 | Race No_1 | Date_1 |
>>
>>> | Check _join1 | Check _join2 | Check _join7 | Check _join4 |
>>>
>>> Stats1.DB | Grade_1 | Distance_1 | Race type_1 | TfGoing_1 | Going_1
>>> |
>>> | Check _join6 | Check _join5 | Check | Check | Check |
>>
>>>
>>> Stats1.DB | Pos_1 | Btn_1 | Trap_1 | Name_1 | Age_1 | Sex_1 | Bend.1_1
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check |
>
>>>
>>> Stats1.DB | Bend.2_1 | Bend.3_1 | Bend.4_1 | Comments_1 | ISP_1 | TFR_1
>>> |
>>> | Check | Check | Check | Check | Check | Check |
>>>
>>> Stats1.DB | Official time_1 | Break time_1 | Trainer_1 | Betfair_1 | RaceN
>>> |
>>> | Check | Check | Check | Check | Check |
>>
>>>
>>> goingAllow.DB | Race name | Racetime | Race No | Date | Grade | Distance
>>> |
>>> | _join1 | _join2 | _join7 | _join4 | _join6 | _join5 |
>>>
>>> goingAllow.DB | GA |
>>> | Check |
>>>
>>> EndQuery
>>>
>>>
>>> qb.executeQBE()
>>>
>>>
>>>
>>>
>>> qb= Query
>>> ANSWER: :WORK:Adjtimes.DB
>>>
>>>
>>> Adjtimes.DB | Race name | Racetime | Race No | Date | Grade | Distance
>>> |
>>> | Check | Check | Check | Check | Check | Check |
>>>
>>> Adjtimes.DB | Race type | TfGoing | Going | Pos | Btn | Trap |
>>
>>> | Check | Check | Check | Check | Check | Check |
>>>
>>> Adjtimes.DB | Name | Age | Sex | Bend.1 | Bend.2 | Bend.3 | Bend.4
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check |
>>>
>>> Adjtimes.DB | Comments | ISP | TFR | Official time | Break time |
>>
>>> | Check | Check | Check | Check | Check |
>>>
>>> Adjtimes.DB | Trainer | Betfair | Race name_1 | Racetime_1 | Race No_1
> |
>>>
>>> | Check | Check | Check | Check | Check |
>>>
>>> Adjtimes.DB | Date_1 | Grade_1 | Distance_1 | Race type_1 | TfGoing_1 |
>>
>>> | Check | Check | Check | Check | Check |
>>>
>>> Adjtimes.DB | Going_1 | Pos_1 | Btn_1 | Trap_1 | Name_1 | Age_1 | Sex_1
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check |
>>>
>>> Adjtimes.DB | Bend.1_1 | Bend.2_1 | Bend.3_1 | Bend.4_1 | Comments_1 |
> ISP_1
>>> |
>>> | Check | Check | Check | Check | Check | Check |
>>
>>>
>>> Adjtimes.DB | TFR_1 | Official time_1 | Break time_1 | Trainer_1 | Betfair_1
>>> |
>>> | Check | Check _a | Check | Check | Check |
>>
>>>
>>> Adjtimes.DB | RaceN | GA |
>>> | Check >0 | Check _b,calc _a-_b as GAA |
>>>
>>> EndQuery
>>>
>>>
>>> qb.executeQBE()
>>>
>>> qb=Query
>>> ANSWER: :PRIV:ANSWER.DB
>>>
>>> OPTIONS: NO AUXILIARY TABLES
>>> Adjtimes.DB | Distance_1 | Official time_1 | GA | GAA |
>>> | | _c | _b | changeto _c+_b |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>>
>>> qb=Query
>>> ANSWER: :WORK:NNett.DB
>>>
>>> DogsDB.DB | Race name | Racetime | Race No | Date | Grade
>>> | Distance |
>>> | Check Crayford | Check | Check | Check ~sDate | Check |
>> Check
>>> 380 |
>>>
>>> DogsDB.DB | Race type | Pos | Trap | Name | Age | Sex |
>>> | Check | Check | Check | Check | Check | Check |
>>>
>>> DogsDB.DB | TFR
>
>>
>>>
>
>>
>>> |
>>> | _a,calc _a*0 as RT2,calc _a*0 as RT2P,calc _a*0 as RT2C,calc _a*0
>> as
>>> RT4,calc _a*0 as RT4P,calc _a*0 as RT4C,calc _a*0 as RT6,calc _a*0 as RT6P,calc
>>> _a*0 as RT6C |
>>>
>>> DogsDB.DB |
>>> |
>>>
>>> DogsDB.DB | Betfair
>
>>
>>> |
>>> | Check calc _a*0 as BT6,calc _a*0 as RT6P,calc _a*0 as RT6Avg,calc
>> _a*0
>>> as Tracp P,calc _a*0 as BT,calc _a*0 as Nocr |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>>
>>>
>>>
>>> qb= Query
>>> ANSWER: :PRIV:ANSWER.DB
>>>
>>> NNett.DB | Pos |
>>> | not 1,changeto 0 |
>>>
>>> EndQuery
>>>
>>>
>>> qb.executeQBE()
>>>
>>>
>>>
>>> play("Lto2T.ssl")
>>>
>>> play("Lto4.ssl")
>>>
>>> play("Lto6.ssl")
>>>
>>> play("BT8.ssl")
>>> play("Fitness.ssl")
>>>
>>> qb=Query
>>> ANSWER: :PRIV:ANSWER.DB
>>>
>>> OPTIONS: NO AUXILIARY TABLES
>>> NNett.DB | Race name | Racetime | Race No | Date | Name | Betfair
>
>>
>>> |
>>> | _join1 | _join2 | _join3 | _join4 | _join5 | changeto _a |
>>>
>>> BetfairSp.DB | Race name | Racetime | Race No | Date | Name | Betfair
>>> |
>>> | _join1 | _join2 | _join3 | _join4 | _join5 | _a |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>>
>>> qb=Query
>>> ANSWER: :WORK:ANSWER.DB
>>>
>>> NNett.DB | Race name | Racetime | Race No | Date | Grade | Distance
> |
>>>
>>> | Check | Check | Check | Check | Check | Check
> |
>>>
>>>
>>> NNett.DB | Race type | Pos | Trap | Name | Age | Sex | Betfair
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
>>> |
>>>
>>> NNett.DB | RT2 | RT2P | RT2C | RT4 | RT4P | RT4C | RT6
>
>> |
>>>
>>> | Check | Check | Check | Check | Check | Check | Check
>
>> |
>>>
>>>
>>> NNett.DB | RT6P | RT6C | BT6 | RT6P_1 | RT6Avg | Tracp P | BT
>
>>
>>> |
>>> | Check | Check | Check | Check | Check | Check | Check
>>
>>> |
>>>
>>> NNett.DB | Nocr |
>>> | Check |
>>>
>>> EndQuery
>>>
>>> qb.executeQBE()
>>> tab.attach("answer")
>>> tab.add("Stats2",True,False)
>>>
>>>
>>>
>>>
>>>
>>> ; and at the end prepare data for next iteration
>>> dStart = dEnd+1
>>> mStart = mEnd+1
>>>
>>> endWhile
>>>
>>>
>>
>
|