oregon ha scritto:
È un po' difficile dire dove sta l'errore ... Si fa prima se fai scaricare il progetto da provare...
Ciao, hai un MP.
gibra ha scritto:
Lo è se l'immagine è leggibile!
In questo caso la leggibilità fa pena.
Ma anche fosse leggibile, non ce ne facciamo un granché, perché bisogna analizzare il flusso di dati elaborati, dati che hai solo tu e di cui noi non abbiamo alcuna conoscenza.
Hemm... si...hai ragione... allego l'immagine come file a parte...
Allora... una cosa alla volta...
"analizzare il flusso di dati elaborati"
Che vuoi dire?
se intendi uno scambio di dati tra il programma e l'utente... non ce ne sta... è un semplice compilatore della listview ottenuto attraverso form contenenti textbox e maskedtextbox... di cosa hai bisogno di preciso? allego pure il codice di dove si genera l'errore e non c'è intromissione di dati esterni.
gibra ha scritto:
Certo: entrare in DEBUG e, durante il flusso di dati, leggere il valore delle variabili e/o dei parametri incriminati e controllare se corrispondono a quello che ci si aspetta.
Trovarsi un Index = 1 dopo aver già inserito diversi elementi ovviamente è un errore. Questo è il primo indizio.
Perché è 1 ? Da dove arriva quel valore? Da una sorgente di dati esterna? Dal tuo codice? etc...
anche qui... che intendi per leggere il valore delle variabili? in base a quanto sto imparando mi aspetto che con l'evento click sul pulsante "Inserisci" lui va a scrivere i dati contenuti nelle textbox all'interno della listview ed, ovviamente, li salva in un apposito file richiamato in lettura.
Non ci sono intromissioni di dati esterni.
Lo so che trovarmi un "Index = 1" dopo aver inserito diversi elementi è un errore... il problema è che non riesco a capire da cosa è dipeso, per questo son qui a chiedere aiuto a voi... perche un conto è che l'errore me lo fa subito... ma non ha senso che me lo fa a "random"... anche perche, nel cercare di capire, ho fatto varie prove... per andare ad esclusione... ad esempio... ho escluso che l'errore è generato dal 4° inserimento... ecco immagine di esempio....
ho inserito tutti "PIPPO" e poi "PIPPOPIPPO" e non mi ha dato nessun problema MA!... appena ho cercato di inserire "PIPPO123" ecco che si è ripresentato il problema!...
Siccome mi segnala che "Index = 1"... ho pure fatto una prova... ho reso la stringa interessata, quella che diventa gialla, in modalità commento... quindi diventa verde.
Ora... l'inserimento è sempre corretto.... ma mi si incasina il salvataggio dei dati... perche il problema è nei SubItems... ma la cosa interessante è che quando mi è spuntato di nuovo l'errore, stavolta mi ha indicato la seconda stringa dei subitems... e diceva l'Index = 2.
Quindi... mi vien da capire che quell'1 che pesca è il numero del SubItems.... ma sono costretto a metterlo!... altrimenti non mi salva correttamente i SubItems nel file per richiamarli una volta riaperto il programma... insomma... mi sembra un po in cane che si morde la coda.
Questo è il codice della pagina.
Imports System.IO
Public Class AggiungiWeb
Dim PatchWeb As String = My.Computer.FileSystem.CurrentDirectory + "\web.dll"
Private Sub PulsanteAggiungiWeb(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If FormPrincipale.ListView2.Items.Count = (0) Then
FormPrincipale.ListView2.Items.Add(tbSitoWeb.Text)
FormPrincipale.ListView2.Items(0).SubItems.Add(tbNiknameSitoWeb.Text)
FormPrincipale.ListView2.Items(0).SubItems.Add(tbPasswordSitoWeb.Text)
Else
FormPrincipale.ListView2.Items.Add(tbSitoWeb.Text)
FormPrincipale.ListView2.Items(FormPrincipale.ListView2.Items.Count - 1).SubItems.Add(tbNiknameSitoWeb.Text)
FormPrincipale.ListView2.Items(FormPrincipale.ListView2.Items.Count - 1).SubItems.Add(tbPasswordSitoWeb.Text)
End If
If File.Exists(PatchWeb) = False Then
Using crea As New StreamWriter(PatchWeb)
For c = 0 To FormPrincipale.ListView2.Items.Count - 1
crea.WriteLine(FormPrincipale.ListView2.Items(c).Text)
crea.WriteLine(FormPrincipale.ListView2.Items(c).SubItems(1).Text)
crea.WriteLine(FormPrincipale.ListView2.Items(c).SubItems(2).Text)
Next
crea.Close()
End Using
Else
Using crea As New StreamWriter(PatchWeb)
For c = 0 To FormPrincipale.ListView2.Items.Count - 1
crea.WriteLine(FormPrincipale.ListView2.Items(c).Text)
crea.WriteLine(FormPrincipale.ListView2.Items(c).SubItems(1).Text) '*******************************************************
crea.WriteLine(FormPrincipale.ListView2.Items(c).SubItems(2).Text)
Next
crea.Close()
End Using
End If
MsgBox("Dati salvati correttamente")
Me.Close()
End Sub
End Class
Ho inserito gli asterischi nella stringa di codice incriminata.
Questo è praticamente il codice del Form "Inserimento dati Web" che mostra i textbox per inserire i dati nella listview2 situata nel FormPrincipale del programma.
Allegati: