Italian Gestione array

ivanomonti

Expert
Licensed User
Longtime User
Azz qui mi trovo in grande diffilcoltà, intanto salve a tuta la ML :)

Vediamo la gestione array in basic o simili da la possibilità di

1) istanziare ( dim array(99) as string ) = ok
2) ridimensionare ( redim ) = ????
2) eliminare item ( array.remove(index) ) = ????
4) aggiungere ( array.append(value) ) = ???

5) Inserire (array.insert(value,index) ) = ????

Ho bisogno di trovare la soluzione, ma non ho trovato molto, in particolar modo quelli scritti in rosso
 

genesi

Active Member
Licensed User
Longtime User
megio una list

Ti devi implementare tu le funzioni che cerchi con array temporanei , oppure usi una list che è simile ad un array dinamico
Mario
 

ivanomonti

Expert
Licensed User
Longtime User
Ragazzi ho un problema che forse e li davanti a me, ma io non lo vedo azzarola

andiamo per ordine, salvo un dato in una chiave, visualizzo il dato in una ListView e mantengo i dati in 2 list diverse.

Questa soluzione perchè in una ListView a due valori per row, la seconda non si recupera.... non so perchè.

B4X:
Sub insertdata(xListView As ListView)
   Dim cd As CustomDialog
   Dim pnl As Panel
   pnl.Initialize("pnl")
   '
   Dim key1 As EditText
   key1.Initialize("key1")
   key1.Text = "Soggetto"
   pnl.AddView(key1,2%x, 20dip, 75%x, 48dip)
   '
   Dim key2 As EditText
   key2.Initialize("key2")
   key2.Text = "Descrizione"
   pnl.AddView(key2,2%x, 90dip, 75%x, 48dip)
   '
   cd.AddView(pnl, 5%x, 0%y, 77%x, 70%y)
   ret = DialogResponse.CANCEL
   If cd.Show("Dati personali", "Salva", "Annulla", "", Null) = DialogResponse.POSITIVE Then
      xListView.AddTwoLines(key1.Text,key2.Text)
      xList1.Add(key1.Text)
      xList2.Add(key2.Text)
      savelist(xListView)
   End If
End Sub

B4X:
Private Sub savelist(xListView As ListView)
   Dim listitem As String
   For i = 1 To xList1.Size-1
      If i = 1 Then
         listitem = xList1.Get(i) & "-" & xList2.Get(i)
      Else
         listitem = listitem & "," & xList1.Get(i) & "-" & xList2.Get(i)
      End If
   Next
   FileSettingApp.SetString("chiave6",listitem)
End Sub

B4X:
Sub deleteitem(xListView As ListView,position As Int)
   Dim cd As CustomDialog
   Dim Panel3 As Panel
   Panel3.Initialize("panel3")
   cd.AddView(Panel3, 5%x, 0%y, 77%x, 10%y)
   ret = DialogResponse.CANCEL
   If cd.Show("Eliminare Questa voce", "Si", "No", "", Null) = DialogResponse.POSITIVE Then
      xListView.RemoveAt(position)
      xList1.RemoveAt(position)
      xList2.RemoveAt(position)
      savelist(xListView)
   End If
End Sub

B4X:
Sub loadlist(xListView As ListView)

   xListView.Clear
   xList1.Clear
   xList2.Clear
   '
   Dim listitem() As String
   Dim s As String
   '
   s = FileSettingApp.GetString("chiave6")
   listitem = Regex.Split(",",s)
   '
   For i = 0 To listitem.Length-1
      LabelView(i) = listitem(i)
      Dim ss() As String
      ss =  Regex.Split("-",listitem(i))
      If ss.Length > 1 Then
         xListView.AddTwoLines(ss(0),ss(1))
         xList1.Add(ss(0))
         xList2.Add(ss(1))
      Else If ss.Length = 1 Then
         xListView.AddSingleLine(ss(0))
         xList1.Add(ss(0))
         xList2.Add("Nessuna descrizione")
      Else
         Continue
      End If
   Next
   '
End Sub

Tutto funziona bene, ma mi elimina una riga in +, non capisco dove sbaglio.
 
Top