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
    giovedì 14 agosto 2025
    Bari
    86
    54
    27
    49
    68
    Cagliari
    29
    79
    63
    87
    34
    Firenze
    63
    43
    77
    65
    41
    Genova
    01
    04
    28
    19
    76
    Milano
    77
    29
    38
    12
    86
    Napoli
    85
    83
    52
    63
    37
    Palermo
    56
    57
    50
    62
    52
    Roma
    48
    29
    01
    41
    43
    Torino
    81
    79
    19
    53
    48
    Venezia
    56
    27
    01
    45
    79
    Nazionale
    28
    75
    74
    89
    62
    Estrazione Simbolotto
    Nazionale
    30
    35
    08
    43
    17
Indietro
Alto