Autore Topic: [RISOLTO] Semplice Array  (Letto 1100 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
[RISOLTO] Semplice Array
« il: 21 Ottobre 2010, 12:31:55 »
Premetto sicuramente una mia carenza nel capire a fondo il funzionamento dei vari tipi di Array, l'esempio che posto è propio quello che mi serve, ma non riesco a farlo funzionare come voglio io.
Chiedo il vostro aiuto in quanto a forza di provare sono andato in confusione... :rolleyes: :rolleyes:

Questo il codice:
Codice: gambas [Seleziona]
' Gambas class file

PRIVATE e AS NEW String[]

PUBLIC SUB _new()
  ME.Center
END

PUBLIC SUB Form_Open()

END

PUBLIC SUB BtnExecute_Click()
  DIM i AS Integer

  FOR i = 0 TO 4
    ' e.Add(Str(i))
    e.Add(i)
  NEXT

  e[0] = "D1"
  e[1] = "D3"
  e[2] = "D4 D9"
  e[3] = "D5 D10"
  e[4] = "D8"

  FOR i = 0 TO e.Count - 1
    TextArea1.Text = e[i] & Chr(10)
  NEXT
END

PUBLIC SUB BtnFind_Click()
  TextArea1.Clear()

  TextArea1.Text = e.Find("D3")
END

PUBLIC SUB BtnExit_Click()
  ME.Close()
END


Perchè nella TextArea viene visualizzato solo l'ultimo elemento?
Premendo il BtnFind mi restituisce la posizione all'interno dell' Array, a me serve che mi restituisca la stringa di ricerca, se esiste ovviamente.
« Ultima modifica: 21 Ottobre 2010, 13:15:50 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Semplice Array
« Risposta #1 il: 21 Ottobre 2010, 12:37:26 »
l'errore penso sia qui:

Codice: gambas [Seleziona]
FOR i = 0 TO e.Count - 1  
   TextArea1.Text = e[i] & Chr(10) 
NEXT 


prova con:

Codice: gambas [Seleziona]
FOR i = 0 TO e.Count - 1  
   TextArea1.Text &= e[i] & Chr(10) 
NEXT 


Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Semplice Array
« Risposta #2 il: 21 Ottobre 2010, 12:59:17 »
 :ok: Grazie tante milio
il primo passo ci siamo.

E per quanto riguarda la ricerca all'interno dell'Array?
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Semplice Array
« Risposta #3 il: 21 Ottobre 2010, 13:14:39 »
Risolto  :D

Codice: gambas [Seleziona]
PUBLIC SUB BtnFind_Click()  
  DIM x as String

  TextArea1.Clear()  
  
  x = e.Find("D3")
  TextArea1.Text = e[x]  
 END  
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: [RISOLTO] Semplice Array
« Risposta #4 il: 21 Ottobre 2010, 13:17:24 »
:ok: Grazie tante milio
il primo passo ci siamo.

E per quanto riguarda la ricerca all'interno dell'Array?


Scusa non avevo letto tutto il tuo primo post  :-[

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: [RISOLTO] Semplice Array
« Risposta #5 il: 30 Ottobre 2010, 12:51:39 »
Riprendo questa discussione visto che devo chiedervi ancora aiuto inerente la stessa.
Come potete leggere dai post precedenti avevo bisogno di capire come fare la ricerca all'interno di un Array, ho provato ad applicare la soluzione ad una ricerca sui dei dati contenuti in un array popolato da una GridView con una condizione, che i dati che vanno a finire nell'array siano univoci, non ci sono riuscito, questo è il codice che stò cercando di utilizzare per risolvere:
Codice: gambas [Seleziona]
PUBLIC SUB _new()
  ME.Center
END

PUBLIC SUB Form_Open()
  DIM r, k Integer
  DIM conteggio AS NEW String[]

  GridView1.Columns.Count = 1
  GridView1.Rows.Count = 4

  WITH GridView1
    .Columns[0].Width = 80
  END WITH

  GridView1[0, 0].Text = "10"
  GridView1[1, 0].Text = "20"
  GridView1[2, 0].Text = "30"
  GridView1[3, 0].Text = "10"

  FOR r = 0 TO GridView1.Rows.Count - 1
    IF conteggio.Find(GridView1[r, 0].Text) <> GridView1[r, 0].Text THEN
        conteggio.Add(GridView1[r, 0].Text)
      ELSE
        Label1.Text = "NOK"
    ENDIF
  NEXT

  FOR k = 0 TO conteggio.Count - 1
    TextArea1.Text &= conteggio[k] & Chr(10)
  NEXT
END

se provate vedrete che all'interno della TextArea un dato (il numero 10) viene ripetuto due volte.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO] Semplice Array
« Risposta #6 il: 30 Ottobre 2010, 13:05:26 »
Codice: [Seleziona]
# FOR r = 0 TO GridView1.Rows.Count - 1   
#    IF conteggio.Find(GridView1[r, 0].Text) <> -1 THEN   
#        conteggio.Add(GridView1[r, 0].Text) 
#      ELSE   
#        Label1.Text = "NOK" 
#    ENDIF   
#  NEXT   

modifica così

il find se il dato non è presente nell' array ritorna -1 e quindi puoi m,emorizzare il dato

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: [RISOLTO] Semplice Array
« Risposta #7 il: 30 Ottobre 2010, 17:26:22 »
Codice: [Seleziona]
# FOR r = 0 TO GridView1.Rows.Count - 1   
#    IF conteggio.Find(GridView1[r, 0].Text) <> -1 THEN   
#        conteggio.Add(GridView1[r, 0].Text) 
#      ELSE   
#        Label1.Text = "NOK" 
#    ENDIF   
#  NEXT   

modifica così

il find se il dato non è presente nell' array ritorna -1 e quindi puoi m,emorizzare il dato

Ciao, fsurfing
ho provato la tua soluzione, non funziona, non memorizza nessun dato
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO] Semplice Array
« Risposta #8 il: 30 Ottobre 2010, 19:25:16 »
ops  ;D

IF conteggio.Find(GridView1[r, 0].Text) = -1 THEN   

chiedo venia

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: [RISOLTO] Semplice Array
« Risposta #9 il: 30 Ottobre 2010, 21:40:34 »
 :ok: :ok: Grazie tante fsurfing

Che faccio... metto un doppio [RISOLTO]... ;D (tanto Ceskho...non c'è... :rotfl:)
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO] Semplice Array
« Risposta #10 il: 30 Ottobre 2010, 22:37:37 »
lascia pure così , strana comunque questa assenza di cesko  ??? chissa che gli è capitato!

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: [RISOLTO] Semplice Array
« Risposta #11 il: 02 Novembre 2010, 16:49:53 »
lascia pure così , strana comunque questa assenza di cesko  ??? chissa che gli è capitato!

speravate che gli alieni mi avessero rapito vero???In realtrà ci hanno provato ma poi si sono arresi pure loro.... :rotfl: