Diese Seite mit anderen teilen ...

Informationen zum Thema:
Forum:
WinDev Forum
Beiträge im Thema:
4
Erster Beitrag:
vor 2 Jahren, 2 Monaten
Letzter Beitrag:
vor 2 Jahren, 2 Monaten
Beteiligte Autoren:
André Labuschagné, Peter Holemans, DerekT

Deleting Elements In An Array

Startbeitrag von André Labuschagné am 23.11.2015 14:40

Hi All

I am wanting to loop through a structured array and delete a line based on a value in one of the fields in the structure. Is it in order to use a for each rec of the array and then use:

ArrayDelete(myArray,CurrentElement)?

Is this the correct approach?

Cheers
André

Antworten:

André

According to the Help the 'CurrentElement' subscript can only be used with associative arrays so it would seem not.

Probably need to increment an integer counter for each loop of the array and use ArrayDelete(myArray,nCounter).
Followed by decreasing the count value by 1 'nCounter --' to keep the counter in step as the ArrayDelete is effective immediately.

Have not tried this so I would run a test first - In debug to see what happens.
It is possible that if a row is removed from the array the next read could in fact skip a row.

von DerekT - am 23.11.2015 15:03
Hi André,

Out of my head something like:

FOR EACH Element, Index OF MyArray FROMEND
IF Element.MyValue = Something THEN
ArrayDelete(MyArray, Index)
END
END


Cheers,

Peter Holemans

von Peter Holemans - am 23.11.2015 15:25
Thanks Peter - you have a good head - exactly what I was looking for.

Cheers
André

von André Labuschagné - am 23.11.2015 18:52
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.