Oppure

Loading
15/05/11 8:52
adelaide12
Ciao, ho un problema con il mio codice:


Dim r As New Random
Dim Testolineef() As String
Dim Testolineed() As String

Testolineef = System.IO.File.ReadAllLines("D:\ADE's WORKS\elementi di informatica\Impiccato\parole1.txt";)
Testolineed = System.IO.File.ReadAllLines("D:\ADE's WORKS\elementi di informatica\Impiccato\parole2.txt";)


Dim parolasegretaF As New List(Of String)(Testolineef)
Dim parolasegretaD As New List(Of String)(Testolineed)


If Labeldi.Text = "facile" Then 'scelta a caso di stringa nel file a seconda della difficoltà
m = r.Next(parolasegretaF.Count)
x = parolasegretaF(n)
ElseIf Labeldi.Text = "difficile" Then
m = r.Next(parolasegretaD.Count)
x = parolasegretaD(n)
End If

Quando apro il programma la prima parola è ogni volta sempre la stessa, cioè quella posizionata alla prima riga del file di testo, come faccio a fare in modo che ogni volta sia diversa anche quando apro il programma per la prima volta? risp :)
aaa
15/05/11 9:44
R0gerBlack
Metti il codice nei tag Code o non si capisce na mazz..

'Esempio di codice nei Tag Code
'Dim A As String


Comunque, ti consiglio prima di leggere tutte le righe, salvarle in un array e usare il random da questo Array (e non List) che direttamente da File

Tra le dichiarazioni
'Tra le dichiarazioni
Dim RandomText(1000) As String
Dim ReadedString As String


Quando deve essere letto il file

        Dim r As New IO.StreamReader("locazione.txt")
        Dim count As Integer
        While Not r.EndOfStream
            'Leggi la riga successiva finché non finiscono
            RandomText(count) = r.ReadLine
            'RandomText(count) = riga letta
            count += 1
        End While
        'Ridimensiona l'Array (per risparmiare memoria) al massimo
        'numero di frasi ogni riga nel File di testo, es.50 righe =
        'RandomText(49) [RandomText(0) è utilizzato]
        ReDim Preserve RandomText(count - 1)
        'NOTA: Il ReDim effettuato senza Preserve cancellerà tutto
        'il contenuto dell'array
        Dim Rand As New Random
        ReadedString = RandomText(Rand.Next(0, count))
        'ReadedString conterrà la riga letta a caso

Ultima modifica effettuata da R0gerBlack 15/05/11 10:02
aaa
15/05/11 10:03
adelaide12
Scusami, adesso lo inserisco nel tag.
Il codice è il seguente:
Dim r As New Random
        r = New Random
        Dim Testolineef() As String
        Dim Testolineed() As String

        Testolineef = System.IO.File.ReadAllLines("D:\ADE's WORKS\elementi di informatica\Impiccato\parole1.txt")
        Testolineed = System.IO.File.ReadAllLines("D:\ADE's WORKS\elementi di informatica\Impiccato\parole2.txt")


        Dim parolasegretaF As New List(Of String)(Testolineef)
        Dim parolasegretaD As New List(Of String)(Testolineed)


        If Labeldi.Text = "facile" Then               'scelta a caso di stringa nel file a seconda della difficoltà
            m = r.Next((parolasegretaF.Count) + 1)
            x = parolasegretaF(n)
        ElseIf Labeldi.Text = "difficile" Then
            m = r.Next((parolasegretaD.Count) + 1)
            x = parolasegretaD(n)
        End If
aaa
15/05/11 10:05
Il Totem
Può dipendere dal fatto che usi n come indice delle liste, mentre assegni il valore casuale a m?
aaa
15/05/11 10:06
R0gerBlack
Ti ho scritto un codice alternativo (più ottimizzato e funzionante) testato per avere il valore della riga a caso, per leggere da due file una riga a caso basta semplicemente che svolgi di nuovo il procedimento con un altra directory (o che usi un altro StreamReader) e un altro array
aaa
15/05/11 10:11
adelaide12
Totem sei un mito!! :)
Scusate ma come faccio a fare in modo che mi legga le righe del file, fino a dove finisce...in modo che non mi inserisca nella mia lista di stringhe alcuen stringhe vuote?


Ultima modifica effettuata da adelaide12 19/05/11 7:23
aaa