Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Whether to Use an Array or a Cursor ?
Message
From
15/08/2013 11:23:21
 
 
To
15/08/2013 10:31:10
Mike Yearwood
Toronto, Ontario, Canada
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP
Network:
Windows XP
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01580497
Message ID:
01580547
Views:
46
Thanks Sir

>>I am trying to some Extract Data from a Text file and preform some Manipulation on it.
>>
>>For Extraction of Data I have two options, 1st create a cursor using Append from abc.txt SDF and Use The Locate Command to find my Data inside and extract it.
>>
>>2nd Use an Array. Initially I opted the second option. Now, to extract the Data from The array I am Scaning the entire Array from top Until the record is Matched, but since the volume of Data to be extracted from ech file and the number of files are also too Large, its taking huge time for entire processing.
>>
>>Alternatively, now i am thinking to take the data of each file in cursor and Use LOCATE FOR Command.
>>
>>What would be More Faster Mode or what should I do ?
>
>Code that uses arrays is uglier than code that uses a cursor.
>
>
>for x = 1 to 10
>  if laTemp[m.x,5] = 'test'
>    ?'test'
> endif
>endfor x
>
>
>What is the above testing?
>
>
>select invoices
>scan for invno = 'test'
>    ?'test'
>endscan
>
>
>Seems clearer that we're looking for an invoice # = 'test'. You need to remember that to use seek you need to index the cursor. If you use locate without indexes it will scan the entire cursor, just like an array. Personally, in FoxPro, I avoid arrays at all costs, only using them when I have no choice.
>
>
>
>>
>>Here's a small portion of my current code. Should I Continue with Array or Cursor ?
>>
>>
>>*****************Extract Usage Charges From PS File******************
>>cExit='N'
>>lnRowposition=10000
>>
>>FOR I= 1 TO nU1 && nU1 is the Length of Array
>>IF 'Usage Charges' $ laArray(I)=.T.
>>lnRowposition =    VAL(GETWORDNUM(laArray(I), GETWORDCOUNT(laArray(I)) - 1)) && The second last word
>>lnLeftColumnposition = GETWORDNUM(laArray(I), GETWORDCOUNT(laArray(I)) - 2) && The Third last word
>>lnLeftColumnposition=VAL(STREXTRACT(lnLeftColumnposition,')',''))
>>EXIT
>>ENDIF
>>ENDFOR
>>
>>FOR nFor=-1 TO 1
>>lcRowposition=ALLTRIM(STR(lnRowposition+nFor))+' x'
>>FOR I= 1 TO nU1
>>IF lcRowposition $ laArray(I)=.T.
>>lnRightColumnposition=GETWORDNUM(laArray(I), GETWORDCOUNT(laArray(I)) - 2) && The Third last word
>>lnRightColumnposition=VAL(STREXTRACT(lnRightColumnposition,')',''))
>>IF lnRightColumnposition>lnLeftColumnposition
>>IF TYPE(STREXTRACT(laArray(I),'(',')'))='N'
>>nUsagecharges=VAL(STREXTRACT(laArray(I),'(',')'))
>>cEXit='Y'
>>EXIT
>>ENDIF
>>ENDIF
>>ENDIF
>>IF cExit='Y'
>>EXIT
>>ENDIF
>>ENDFOR
>>ENDFOR
>>************************************************************************
>>*****************Extract Balance Minimum Guarantee PS File******************
>>cExit='N'
>>lnRowposition=10000
>>
>>FOR I= 1 TO nU1
>>IF 'Minimum Guarantee' $ laArray(I)=.T.
>>lnRowposition =    VAL(GETWORDNUM(laArray(I), GETWORDCOUNT(laArray(I)) - 1)) && The second last word
>>lnLeftColumnposition = GETWORDNUM(laArray(I), GETWORDCOUNT(laArray(I)) - 2) && The Third last word
>>lnLeftColumnposition=VAL(STREXTRACT(lnLeftColumnposition,')',''))
>>EXIT
>>ENDIF
>>ENDFOR
>>
>>FOR nFor=-1 TO 1
>>lcRowposition=ALLTRIM(STR(lnRowposition+nFor))+' x'
>>FOR I= 1 TO nU1
>>IF lcRowposition $ laArray(I)=.T.
>>lnRightColumnposition=GETWORDNUM(laArray(I), GETWORDCOUNT(laArray(I)) - 2) && The Third last word
>>lnRightColumnposition=VAL(STREXTRACT(lnRightColumnposition,')',''))
>>IF lnRightColumnposition>lnLeftColumnposition
>>IF TYPE(STREXTRACT(laArray(I),'(',')'))='N'
>>nBalMinimumGuarantee=VAL(STREXTRACT(laArray(I),'(',')'))
>>cEXit='Y'
>>EXIT
>>ENDIF
>>ENDIF
>>ENDIF
>>IF cExit='Y'
>>EXIT
>>ENDIF
>>ENDFOR
>>ENDFOR
>>************************************************************************
>>
>>
Harsh
Previous
Reply
Map
View

Click here to load this message in the networking platform