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:
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:
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ì 19 maggio 2026
    Bari
    31
    86
    56
    69
    65
    Cagliari
    66
    23
    78
    64
    48
    Firenze
    43
    30
    56
    02
    12
    Genova
    75
    47
    20
    71
    18
    Milano
    37
    35
    74
    85
    80
    Napoli
    75
    66
    53
    89
    87
    Palermo
    89
    39
    02
    81
    14
    Roma
    58
    42
    09
    38
    08
    Torino
    10
    26
    15
    05
    03
    Venezia
    38
    68
    69
    22
    07
    Nazionale
    90
    21
    28
    85
    64
    Estrazione Simbolotto
    Milano
    45
    30
    17
    23
    19
Indietro
Alto