Novità

Come aggiungere un valore ad inizio di un vettore che ha già alcuni elementi?

lotto_tom75

Advanced Premium Member
Codice:
Call SplitByChar(clsL.LunghettaString,".",vettoredastringaformazione)

Call Scrivi ("adesso vettoredastringaformazione(0) ha erroneamente... valore " & vettoredastringaformazione(0))

'---------aggiunta dello zero in prima posizione... del vettore--

'code mancante...

'------------------------------------------------------------------------------------

Call Scrivi ("mentre adesso vettoredastringaformazione(0) ha valore giustamente zero" & vettoredastringaformazione(0))
Call Scrivi ("e vettoredastringaformazione(1) ha correttamente il valore " & vettoredastringaformazione(1))

Io dovrei aggiungere uno 0 nella prima posizione del vettore denominato vettoredastringaformazione in quanto altrimenti la verifica successiva non mi considera il primo numero ma solo i successivi...

Ho provato così:

vettoredastringaformazione(0) = "0"

ma così facendo mi sovrascrive il primo numero del vettore... mentre vorrei soltanto che questo primo numero presente nel vettore si spostasse in posizione (1) del vettore stesso...

Tnx :)
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
Cercando in rete ho trovato questa funzione che potrebbe risolvere il problema...

Codice:
Function array_push(arr,vars)
  ' Dimensiono le variabili interne alla funzione
  Dim k, newelem, newarrsize,elem
  ' Verifico se arr è una array
  If IsArray(arr) Then
    ' Verifico che vars non sia vuoto
    If Len(vars) > 0 Then
      ' Verifico se vars ospita una o più virgole e quindi
      ' se è uno solo o un elenco di elementi.
      ' Se è un solo elemento...
      If InStr(vars, ",") = False Then
        ' Incremento di uno il numero di elementi
        newarrsize = CInt(UBound(arr) + 1)
        ReDim Preserve arr(newarrsize)
        ' Aggiungo in coda il nuovo elemento
        arr(newarrsize) = vars
      ' Se vars è un elenco di elementi...
      Else
        ' Definisco un contatore interno con valore di partenza
        ' pari al numero di elementi dell'array originale + 1
        k = (UBound(arr) + 1)
        ' Creo una array con tutti i nuovi elementi da aggiungere
        newelem = Split(vars, ",")
        ' Incremento il numero di elementi per contenere quelli nuovi
        newarrsize = CInt(UBound(arr) + UBound(newelem) + 1)
        ReDim Preserve arr(newarrsize)
        ' Ciclo i nuovi elementi per aggiungerli all'array originale
        For Each elem In newelem
          arr(k) = Trim(elem)
          k = k + 1
        Next
      End If
    End If
    array_push = arr
  ' Se arr non è una array la nostra funzione restituisce false
  Else
    array_push = False
  End If
End Function

Ad ogni modo... eseguendola all'interno dello script con:

Codice:
Dim ar1, ar2

' Creo l'array di partenza
ar1 = vettoredastringaformazione

' Ora aggiungo 3 elementi.
' Si noti che la nostra funzione richiede 2 argomenti:
' 1) l'array originale
' 2) uno o più elementi da aggiungere.
' Se sono più di uno scrivo i vari elementi separati da una virgola
ar2 = array_push(ar1,"0")

' Verifico che l'aggiunta abbia funzionato...
For Each x In ar2
  Call Scrivi (x)
  Call Scrivi  ("<br />")
Next

Mi aggiunge si lo zero... ma alla fine del vettore :( mentre io appunto lo vorrei aggiungere all'inizio... alla posizione 0 del vettore stesso. :rolleyes:

Grazie a chi mi toglierà da sto piccolo... ma fastidioso... pantano... :D
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
Non importa + :D

Risolto da solo :p;)

Così:

Codice:
Dim ar1, ar2

ar1 = Array("0.")
ar2 = array_push(ar1,StringaNumeri(vettoredastringaformazione))

Dim vs,idx

vs = ""

For idx = 0 To UBound(ar2)
vs = vs & CStr(ar2(idx))
Next

Call SplitByChar(vs,".",vettoredastringaformazione)

:cool::)
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 26 marzo 2024
    Bari
    30
    51
    17
    01
    53
    Cagliari
    13
    70
    25
    68
    47
    Firenze
    28
    30
    54
    70
    88
    Genova
    67
    87
    22
    03
    62
    Milano
    22
    34
    13
    47
    24
    Napoli
    20
    72
    59
    01
    52
    Palermo
    05
    72
    65
    52
    32
    Roma
    28
    43
    75
    54
    87
    Torino
    16
    08
    17
    24
    38
    Venezia
    67
    28
    55
    60
    29
    Nazionale
    15
    69
    22
    63
    39
    Estrazione Simbolotto
    Firenze
    44
    09
    31
    22
    16
Alto