Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Remove elements from an array
Message
 
 
To
09/12/2020 14:48:24
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Germany
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01677490
Message ID:
01677494
Views:
51
>>>>Hi,
>>>>
>>>>The way to populate an array from a current cursor is as follows:
>>>>
>>>>local array aDbfStruct[1]
>>>>afields( aDbfStruct )
>>>>
>>>>
>>>>But if you are using a SQL Server Native Client, some fields (e.g. Varchar(MAX) fields) will have the length 0.
>>>>So, I need to remove these elements from the array aDbfStruct. Or exclude these elements when creating another cursor using the code:
>>>>
>>>>create cursor CUR_MYCURSOR from array aDbfStruct
>>>>
>>>>
>>>>How do you remove all elements from the above array which have element 3 equal to 0 (zero)? Or, can the above CREATE CURSOR be modified to ignore the "bad" fields?
>>>>
>>>>UPDATE: I can scan the array and check each element 3 for a value of 0 and delete it. But I thought maybe there is a more efficient way to delete those elements.
>>>>
>>>>TIA
>>>like this?
>>>
>>>COPY STRUCTURE EXTENDED to TabXYZ
>>>sele cur1.* from TabXYZ as Cur1 into array aDbfStruct where FIELD_LEN=0
>>>use in TabXYZ
>>>dele TabXYZ.*
>>>
>>>
>>>and
>>>
>>>COPY STRUCTURE EXTENDED to TabXYZ
>>>dele from TabXYZ where FIELD_LEN=0
>>>create newtable from TabXYZ
>>>use in TabXYZ
>>>dele TabXYZ.*
>>>
>>>should work w/o array
>>
>>I will try this. Thank you. Although I am thinking if this is more efficient that deleting elements from the array.
>
>It should be better then looping through the array
>No FOR .. ALEN() to 1 step -1, no IF, no ADEL, no DIMENSION.
>Faster, less complex code.
>The need to create a file and delete it is odd, but that can't be helped. Try to target GETENV('temp') dir
>update: consider to use some unique name like sys(2015) too. Much fun if two process create the same file .... SYS(2015) is not fool prove, but less likely.

With my luck, the less likely will turn out to be :) I will consider your approach. Thank you.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform