SPAM-MED: Re: Time to upgrade my technique...

Jim Carwardine jim at oyfconsulting.com
Wed Jun 11 09:09:49 EDT 2008


Ah... The good old days of 70 hour weeks when we were young and stupid  
and we just got our first IBM S360... Jim

On 10-Jun-08, at 2:49 PM, Phil Davis wrote:

> Wow - another former PL/1 programmer! I thought I was the only one  
> left, except at the Rev conference I learned that Robert Cailliau  
> also used it in earlier days.
>
> Phil Davis
>
>
> Jim Carwardine wrote:
>> Thanks, guys... Shame on me for using fields instead of variables.   
>> I knew that one.  That is an original 1987 HC self-learning (that  
>> reflects my PL1 days in the early 70's believe it or not) that I  
>> have fought ever since.
>>
>> Now, to rewrite and relearn... Jim
>>
>> On 10-Jun-08, at 12:55 PM, Jim Ault wrote:
>>
>>> Here are some skeleton techniques that can be applied to your set  
>>> of tasks.
>>> <full listing of original appears below my code>
>>>
>>> Jim Ault
>>> Las Vegas
>>>
>>> ----------------- start code -------------
>>>
>>> on doJimsTasks
>>> --Jim Ault    6.10.08    for    Jim Cowardine
>>> --partial script to show techniques
>>> --will not run, but shows example techniques
>>> --this is not the only way to build a fast Rev routine
>>>
>>> put fld 1 into mainList  --use variables in RAM
>>> put 0 into i
>>> put 1 into j
>>> put empty into eventOutputList --final listing
>>> put empty into currentEvent -- each line we want to fill
>>> --this is added to eventOutputList at the end of the loop
>>> --then eventOutputList is put into field 2 at the finish
>>>
>>> --set up a comma listing of keywords for later
>>> put "Dartmouth,Burnside,Bedford,Sackville,Kentville," into cityList
>>> put "Port  Hawksbury,Truro,Bridgewater,Tantallon," after cityList
>>> put "Glen Haven,Hubbards,Bayers Lake,Cole  Harbour" after cityList
>>>
>>> --now create a list of only those lines that qualify
>>> filter mainList with "*BEGIN:VEVENT*"
>>> --now the only lines remaining are the ones we want
>>> put mainList into keepers --this is a better name, but optional
>>>
>>> -- I use LNN to be the unmodifiable variable to read
>>> repeat for each line LNN in keepers
>>>   add 1 to i
>>>   if LNN contains "SUMMARY" then
>>>   end if
>>>   if LNN contains "LOCATION" then
>>>   end if
>>>   if LNN contains "DSTART" then
>>>   end if
>>>   if LNN contains "END:VEVENT" then
>>>   end if
>>>
>>>
>>>   if holdLine is 1 then
>>>     put eventDate into item 2 of currentEvent
>>>     put locationName into item 5 of currentEvent
>>>
>>>     set the itemDel to comma
>>>     if item 5 of currentEvent is among the items of cityList then
>>>       put item 5 of currentEvent into item 6 of currentEvent
>>>     end if
>>>
>>>     put currentEvent into line j of eventOuputList
>>>
>>>   end repeat
>>>   put eventOuputList into field 2
>>>   set the itemdelimiter to ","
>>>   sort lines of field 2 by item 7 of each
>>>   sort lines of field 2 dateTime by item 2 of each
>>>
>>>
>>> end doJimsTasks
>>>
>>> ------------  end code  -----------------
>>>
>>>
>>> On 6/10/08 7:53 AM, "Jim Carwardine" <jim at oyfconsulting.com> wrote:
>>>
>>>> Hi Folks... I hope this isn't asking too much.  I have found  
>>>> using the
>>>> docs to be less than satisfying when trying an alternative coding
>>>> technique.  I guess I fall into the old dog, actually the old
>>>> Hypercard dog, trying to learn the new Rev tricks.
>>>>
>>>> I just wrote a quick and dirty script to parse out an iCal calendar
>>>> saved as a text file to feed my car expense calculator which was
>>>> published a few months ago in a Rev newsletter.  The script is very
>>>> slow and I was intrigued to know how to speed it up as I am aware  
>>>> that
>>>> I am using very archaic scripting techniques.
>>>>
>>>> Here is my script.  It's relatively short and contains almost all  
>>>> of
>>>> my favourite coding patterns.  If anyone has the inclination,  
>>>> perhaps
>>>> you could point out how I might make use of Revs improvements over
>>>> Hypercard...
>>>>
>>>> It has to do with better ways to handle repeating actions and  
>>>> better
>>>> ways to handle lists... Thanks in advance... Jim
>>>>
>>>> --> all handlers
>>>>
>>>> on mouseUp
>>>>    put 0 into eventMark -- didn't end up using this for anything by
>>>> a switch
>>>>    put 1 into j
>>>>    put empty into eventLine
>>>>    put empty into field 2
>>>>    repeat with i = 1 to the number of lines of field 1
>>>>        if line i of field 1 contains "BEGIN:VEVENT" then -- found  
>>>> an
>>>> event
>>>>            put 1 into eventMark
>>>>            next repeat
>>>>        end if
>>>>        if eventMark > 0 then -- we are parsing an event now
>>>>            breakpoint
>>>>            if line i of field 1 contains "SUMMARY:" then -- found
>>>> the event name
>>>>                put 2 into eventMark
>>>>                set the itemdelimiter to ":"
>>>>                put item 2 of line i of field 1 into eventName --
>>>> hold event name
>>>>                next repeat
>>>>            end if
>>>>            if line i of field 1 contains "LOCATION:" then -- found
>>>> the event location
>>>>                put 3 into eventMark
>>>>                if line i of field 1 contains "\," then replace  
>>>> "\, "
>>>> with " " in line i of field 1
>>>>                set the itemdelimiter to ":"
>>>>                put item 2 of line i of field 1 into locationName --
>>>> hold event location
>>>>                next repeat
>>>>            end if
>>>>            if line i of field 1 contains "DTSTART;" then -- found
>>>> the event location
>>>>                put 4 into eventMark
>>>>                set the itemdelimiter to ":"
>>>>                put char 1 to 4 of item 2 of line i of field 1 into
>>>> eventYear -- hold event year - yyyymmdd
>>>>                put char 5 to 6 of item 2 of line i of field 1 into
>>>> eventMonth -- hold event month - yyyymmdd
>>>>                put char 7 to 8 of item 2 of line i of field 1 into
>>>> eventDay -- hold event day - yyyymmdd
>>>>                put char 10 to 13 of item 2 of line i of field 1  
>>>> into
>>>> eventTime -- hold event time
>>>>                next repeat
>>>>            end if
>>>>        end if
>>>>        if line i of field 1 contains "END:VEVENT" then -- found an
>>>> event ending
>>>>            set itemdelimiter to ","
>>>>            if eventYear = "2007" then
>>>>                -- if eventMonth ≥ "10" then
>>>>                put eventMonth & "/" & eventDay & "/" & eventYear
>>>> into eventDate
>>>>                put 1 into holdLine
>>>>                -- else put 0 into holdLine
>>>>            else put 0 into holdLine
>>>>
>>>>            if holdLine is 1 then
>>>>                put eventDate into item 2 of line j of field 2
>>>>                if locationName is empty then put "Halifax" into
>>>> locationName
>>>>                put locationName into item 5 of line j of field 2
>>>>                put " - " & eventName after item 5 of line j of  
>>>> field 2
>>>>                put empty into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Dartmouth"
>>>> then put "Dartmouth" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Burnside"
>>>> then put "Burnside" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Bedford"
>>>> then put "Bedford" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Sackville"
>>>> then put "Sackville" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Kentville"
>>>> then put "Kentville" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Port
>>>> Hawksbury" then put "Port Hawksbury" into item 6 of line j of  
>>>> field 2
>>>>                if item 5 of line j of field 2 contains "Truro" then
>>>> put "Truro" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains  
>>>> "Bridgewater"
>>>> then put "Bridgewater" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Tantallon"
>>>> then put "Tantallon" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Glen Haven"
>>>> then put "Glen Haven" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Hubbards"
>>>> then put "Hubbards" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Bayers  
>>>> Lake"
>>>> then put "Bayers Lake" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "Cole
>>>> Harbour" then put "Cole Harbour" into item 6 of line j of field 2
>>>>                if item 5 of line j of field 2 contains "airport"
>>>> then put "airport" into item 6 of line j of field 2
>>>>                put eventTime into item 7 of line j of field 2
>>>>                if line j of field 2 contains "\" then replace "\"
>>>> with empty in line j of field 2
>>>>                put return after line j of field 2
>>>>                add 1 to j
>>>>                put empty into eventDate
>>>>                put empty into locationName
>>>>                put empty into eventName
>>>>                put empty into eventYear
>>>>                put empty into eventMonth
>>>>                put empty into eventDay
>>>>                put empty into eventTime
>>>>            end if
>>>>            put 0 into eventMark
>>>>            -- end if
>>>>        end if
>>>>        if the optionkey is "down" then exit repeat
>>>>    end repeat
>>>>    set the itemdelimiter to ","
>>>>    sort lines of field 2 by item 7 of each
>>>>    sort lines of field 2 dateTime by item 2 of each
>>>> end mouseUp
>>>> Jim Carwardine,
>>>> President & CEO
>>>> OYF Consulting
>>>> Ph. 902.823.2339 / 866.601.2339
>>>> Fx. 902.823-2139
>>>> <www.StrategicDoing.com>
>>>> StrategicDoing™: Execution depends on employees.
>>>> Strategic Partner with HiringSmart Canada Ltd.
>>>
>>>
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your  
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>>
>> Jim Carwardine,
>> President & CEO
>> OYF Consulting
>> Ph. 902.823.2339 / 866.601.2339
>> Fx. 902.823-2139
>> <www.StrategicDoing.com>
>> StrategicDoing™: Execution depends on employees.
>> Strategic Partner with HiringSmart Canada Ltd.
>
> -- 
> Phil Davis
>
> PDS Labs
> Professional Software Development
> http://pdslabs.net
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution


Jim Carwardine,
President & CEO
OYF Consulting
Ph. 902.823.2339 / 866.601.2339
Fx. 902.823-2139
<www.StrategicDoing.com>
StrategicDoing™: Execution depends on employees.
Strategic Partner with HiringSmart Canada Ltd.
-- 






More information about the use-livecode mailing list