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
    giovedì 18 aprile 2024
    Bari
    13
    39
    14
    70
    78
    Cagliari
    67
    65
    03
    87
    63
    Firenze
    85
    90
    19
    67
    78
    Genova
    60
    81
    39
    33
    13
    Milano
    90
    01
    83
    11
    88
    Napoli
    18
    12
    80
    29
    19
    Palermo
    50
    83
    40
    24
    12
    Roma
    74
    48
    75
    65
    37
    Torino
    80
    46
    44
    27
    30
    Venezia
    70
    16
    72
    03
    89
    Nazionale
    89
    22
    06
    87
    13
    Estrazione Simbolotto
    Genova
    28
    21
    43
    25
    17

Ultimi Messaggi

Alto