hlmod.hu
https://hlmod.hu/

Lista Ritkítás
https://hlmod.hu/viewtopic.php?f=9&t=28119
Oldal: 1 / 1

Szerző:  JohanCorn [ 2017.08.14. 23:37 ]
Hozzászólás témája:  Lista Ritkítás

Üdv!
-
Tudna valaki megoldást nyújtani arra, hogy egy meglévő lista X elemét eltávolítsam? ( Teszem azt, ha az az elem egy másik listának nem eleme. )
Ha nem lenne világos, akkor demonstrálom...
-
  1. for ( new i; i < ArraySize(Winners); i ++ )
  2.         {
  3.             for ( new j; j < ArraySize(g_VoteList); j ++ )
  4.             {
  5.                 if ( ArrayGetCell(Winners, i) == j )
  6.                     continue;
  7.                
  8.                 ArrayDeleteItem(g_VoteList, j);
  9.             }
  10.         }

-
Ami alapján, ha eleme, akkor kihagyatom, de ha nem eleme, akkor törlöm. A bökkenő az, hogy az elem törlésekor az elemszám is változik, ami miatt a for következő lépcsőjén egy érvénytelen indexértéket dob ki. Ergo megszakad a folyamat.
-
Remélem érthető a problémám és azt még inkább remélem, hogy megoldás is kivitelezhető.

Szerző:  demon [ 2017.08.15. 23:12 ]
Hozzászólás témája:  Re: Lista Ritkítás

Ha jól értelmeztem akkor neked azokat az elemeket kell törölnöd a g_VoteList listából amelyek nem szerepelnek a Winners listában.
  1. for ( new i, j = ArraySize( g_VoteList ); i < j; i++ )
  2. {
  3.     if ( ArrayFindValue( Winners, ArrayGetCell( g_VoteList, i ) ) == -1 )
  4.     {
  5.         ArrayDeleteItem( g_VoteList, i );
  6.         j--;
  7.         i--;
  8.     }
  9. }

Szerző:  JohanCorn [ 2017.08.16. 00:16 ]
Hozzászólás témája:  Re: Lista Ritkítás

A g_VoteList listám így néz ki:

#0 1000
#1 1001
#2 1002
#3 1003
#4 1004

A Winners listám meg mondjuk ez alapján így néz ki:

#0 1
#1 3

Ha át lenne vezetve, akkor lenne benne egy 1001-es és egy 1003-as érték. Ami a törlések után meg az ez maradna az eredeti listán:

#0 1001
#1 1003

(Mivel csúszna ezért felkerülnének.) Az összes többi eltűnne. Szerintem jó lesz amit írtál, csak a listát lettek felcserélve. Minden esetre holnap kipróbálom.

Szerző:  demon [ 2017.08.16. 01:44 ]
Hozzászólás témája:  Re: Lista Ritkítás

Ez kell neked:
  1. for ( new i, j = ArraySize( g_VoteList ); i < j; i++ )
  2. {
  3.     if ( ArrayFindValue( Winners, i ) == -1 )
  4.     {
  5.         ArrayDeleteItem( g_VoteList, i );
  6.         j--;
  7.         i--;
  8.     }
  9. }

Szerző:  JohanCorn [ 2017.08.16. 17:06 ]
Hozzászólás témája:  Re: Lista Ritkítás

Jónak tűnik, de a tegnap este folyamán átgondoltam a dolgot és nem így fogom megvalósítani a terveim. Minden esetre nagy hasznát fogom még venni a jövőben ennek is. :) Köszönöm!

Szerző:  The Peace [ 2017.08.16. 20:33 ]
Hozzászólás témája:  Re: Lista Ritkítás

JohanCorn írta:
Jónak tűnik, de a tegnap este folyamán átgondoltam a dolgot és nem így fogom megvalósítani a terveim. Minden esetre nagy hasznát fogom még venni a jövőben ennek is. :) Köszönöm!


Tudnátok erről 1 képet nekem mutatni , hogy mi is ez a 'Lista Rikítás' ? :D

Szerző:  qkly [ 2017.08.16. 22:15 ]
Hozzászólás témája:  Re: Lista Ritkítás

The Peace írta:
JohanCorn írta:
Jónak tűnik, de a tegnap este folyamán átgondoltam a dolgot és nem így fogom megvalósítani a terveim. Minden esetre nagy hasznát fogom még venni a jövőben ennek is. :) Köszönöm!


Tudnátok erről 1 képet nekem mutatni , hogy mi is ez a 'Lista Rikítás' ? :D



Engem is érdekelne, ha nem privát a dolog, ugyanis amikor Johan topicjait olvasom, annyi az egész, hogy elolvasom, és zárom is a fület, mert nekem kínai szokás szerint.
Off Topic
Erről jut eszembe, hogy általában vizuálisan könyebb tanulni/értelmezni. Lehetne akár a bonyolultabb programozási, esetleg amxx tutokat,
vizuálisan ábrázolni, akár egy ciklust függvényt. Sokkal értelmezhetőbb.

Szerző:  JohanCorn [ 2017.08.16. 23:37 ]
Hozzászólás témája:  Re: Lista Ritkítás

Igazából a dolog már magáért beszél. Van egy listád és azt pár kitételnek megfelelően szeretnéd elemileg csökkenteni. Teszem azt van egy listád az alábbi elemekkel: 1, 2, 3, 3, 7, 9, 9 és ki szeretnéd törölni belőle a 3-asokat. Nekem a problémám hasonló volt, csak éppenséggel én két elemet szerettem volna megtartani, amit egy másik listáról szedett ki.

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/