Autore Topic: [RISOLTO]rimuovere più parti da stringa  (Letto 1205 volte)

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
[RISOLTO]rimuovere più parti da stringa
« il: 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?
« Ultima modifica: 22 Gennaio 2011, 14:48:40 da Mefrio »
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: rimuovere più parti da stringa
« Risposta #1 il: 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...

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: rimuovere più parti da stringa
« Risposta #2 il: 21 Gennaio 2011, 15:28:58 »
sapevo che esistesse la funzione delete ma non ho capito come farla "funzionare"
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: rimuovere più parti da stringa
« Risposta #3 il: 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... ;)
« Ultima modifica: 21 Gennaio 2011, 16:18:34 da Ceskho »

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: rimuovere più parti da stringa
« Risposta #4 il: 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
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: rimuovere più parti da stringa
« Risposta #5 il: 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ù  :-\
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: rimuovere più parti da stringa
« Risposta #6 il: 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...

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: rimuovere più parti da stringa
« Risposta #7 il: 22 Gennaio 2011, 14:48:27 »
ok grazie dell'aiuto ;) sono riuscito ad ottenere quello che volevo
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: rimuovere più parti da stringa
« Risposta #8 il: 22 Gennaio 2011, 15:52:05 »
ok grazie dell'aiuto ;) sono riuscito ad ottenere quello che volevo

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