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
    sabato 22 novembre 2025
    Bari
    82
    08
    24
    45
    37
    Cagliari
    07
    16
    67
    74
    35
    Firenze
    76
    32
    44
    06
    51
    Genova
    22
    77
    19
    27
    89
    Milano
    46
    81
    56
    29
    85
    Napoli
    68
    90
    80
    06
    47
    Palermo
    31
    07
    43
    83
    19
    Roma
    08
    68
    17
    12
    57
    Torino
    87
    17
    61
    60
    58
    Venezia
    27
    05
    17
    72
    50
    Nazionale
    70
    76
    56
    81
    15
    Estrazione Simbolotto
    Torino
    26
    34
    10
    42
    33

Ultimi Messaggi

Indietro
Alto