Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Mefrio - 20 Gennaio 2011, 17:59:25

Titolo: [RISOLTO]rimuovere più parti da stringa
Inserito da: Mefrio - 20 Gennaio 2011, 17:59:25
ragazzi ho una variabile di tipo String[] e vorrei rimuovere più elementi, ad esmpio array[1] e array [2] da esso...ho letto della funzione remove ma non ho capito come utilizzarla...potete darmi una mano?
Titolo: Re: rimuovere più parti da stringa
Inserito da: Ceskho - 20 Gennaio 2011, 18:16:03
ragazzi ho una variabile di tipo String[] e vorrei rimuovere più elementi, ad esmpio array[1] e array [2] da esso...ho letto della funzione remove ma non ho capito come utilizzarla...potete darmi una mano?

Scrissi questo tempo fa: http://soluzionisoftware.blogspot.com/2009/12/didattica-gambas-i-vettori.html

Se non ho capito male è ciò che ti interessa...
Titolo: Re: rimuovere più parti da stringa
Inserito da: Mefrio - 21 Gennaio 2011, 15:28:58
sapevo che esistesse la funzione delete ma non ho capito come farla "funzionare"
Titolo: Re: rimuovere più parti da stringa
Inserito da: Ceskho - 21 Gennaio 2011, 16:16:53
sapevo che esistesse la funzione delete ma non ho capito come farla "funzionare"

È molto semplice....Delete accetta due parametri: uno obbligatorio e l'altro no. Il primo Start vuole un intero ed indica l'indice da cui deve partire l'eliminazione degli elementi mentre il secondo Length è facoltativo ed indica, partendo da Start, quanti elementi vuoi eliminare dall'array. Se questo parametro non è indicato allora viene eliminato solo il valore corrispondente all'indice indicato da Start. Tieni presente che Delete elimina definitivamente l'indice indicato e perciò dopo l'uso di Delete il numero degli elementi contenuto nel vettore si decrementa di 1.

Se ad esempio in un vettore di 3 elementi interi vuoi eliminare solo il primo allora darai:

Codice: gambas [Seleziona]
PUBLIC vettore AS Integer[3]

PUBLIC SUB Form_Open()

  PRINT vettore.Length
  
  vettore.Delete(0)
  
  PRINT vettore.Length
  
END


Remove funziona allo stessimo modo sintatticamente parlando.

Se non sono stato chiaro dimmelo che cerchiamo di capire insieme... ;)
Titolo: Re: rimuovere più parti da stringa
Inserito da: Mefrio - 21 Gennaio 2011, 16:43:26
e se per esempio devo rimuovere da 0 a 6 e da 10 alla fine, supponiamo 12 è possibile? Quello che vorrei capire è sostanzialmente se posso saltare alcuni elementi e come
Titolo: Re: rimuovere più parti da stringa
Inserito da: leo72 - 21 Gennaio 2011, 22:17:27
Puoi fare un ciclo e loopare finché non hai fatto tutte le eliminazioni. Tieni conto di partire però dall'ultima a ritroso, perché se prima elimini gli elementi dallo 0 al 6, poi gli elementi dal 10 al 12.... non ci sono più  :-\
Titolo: Re: rimuovere più parti da stringa
Inserito da: Ceskho - 22 Gennaio 2011, 00:43:02
e se per esempio devo rimuovere da 0 a 6 e da 10 alla fine, supponiamo 12 è possibile? Quello che vorrei capire è sostanzialmente se posso saltare alcuni elementi e come

Ovviamente lo puoi fare ma devi effettuare degli attenti controlli sugli array ogni volta che elimini....se ad esempio vuoi eliminare da 0 a 6 allora dai

TuoArray.Delete(0, 7)

e partendo dall'indice 0 elimina 7 elementi (tieni presente che sono 6 più lo 0)

Poi devi tenere presente che i vecchi indici da 10 a 12 si sono spostati poichè l'array è più piccolo...ora saranno, se non vado errato, rispettivamente dal 4 al 6...fai un disegno per renderti conto...

La situazione iniziale è questa

ARRAY PRIMA DELL'ELIMINAZIONE

| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |

DOPO

| X | X | X | X | X | X | X | 0 | 1 | 2 | 3 | 4 | 5 |

Spero di essere stato chiaro...
Titolo: Re: rimuovere più parti da stringa
Inserito da: Mefrio - 22 Gennaio 2011, 14:48:27
ok grazie dell'aiuto ;) sono riuscito ad ottenere quello che volevo
Titolo: Re: rimuovere più parti da stringa
Inserito da: Ceskho - 22 Gennaio 2011, 15:52:05
ok grazie dell'aiuto ;) sono riuscito ad ottenere quello che volevo

Lieto di esserti stato d'aiuto... :)