ciclo da file disco C



  • ciclo da file disco C
    di chpd data: 21/02/2013 15:07:25

    Premetto che sono alle prime armi.
    E' una semplice versione del gioco il milionario, importando i dati dal disco c, li manda ai tasti per una conferma e torna a ripescare la seconda domanda ecc.
    probl. mi importa la prima e poi mi si ferma non proseguendo la routine.
    Ciao e grazie per la risposta
     
     Private Sub Button8_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
            Dim disco As System.IO.File
            Dim leggi As System.IO.StreamReader
            Dim riga As String
            Dim d() As String
            Dim foto As Integer
            leggi = disco.OpenText("c:vb	est.txt")
            While riga < leggi.Peek - 1
                riga = leggi.ReadLine()
                TextBox2.Text = riga
                d = TextBox2.Text.Split(",")
                For r = 0 To UBound(d)
                    TextBox3.Text = (d(0))
                    Button1.Text = (d(1))
                    Button2.Text = (d(2))
                    Button3.Text = (d(3))
                    Button4.Text = (d(4))
                    TextBox5.Text = (d(5))
                    'comandi per inserire jpg
                    TextBox4.Text = foto
                Next : Exit Sub               (se tolgo exit sub mi crasha)
            End While
            leggi.Close()
        End Sub
    
    (dati tasto, ne inserisco uno, dato che poi tutti e 4 avranno la stessa routine)
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If TextBox3.Text = "" Then
            ElseIf Button1.Text = TextBox5.Text Then
                Button1.BackColor = Color.Green
                MsgBox("La risposta è esatta", MsgBoxStyle.Information, "AVVISO")
            ElseIf MsgBox("La risposta errata", MsgBoxStyle.Information, "AVVISO") Then
                Button1.BackColor = Color.Red
            End If
    
           End Sub



  • di HarryBosch data: 21/02/2013 18:29:35

    C'è un pò di confusione con "leggi e disco" ^_^
    Togli quel disco e prova come sotto... un pò alla cieca perché non conosco i dati.
    Eventualmente approfondiamo
     
    Private Sub Button8_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
            Dim leggi As System.IO.StreamReader
            Dim riga, d() As String
            Dim foto As Integer
    
            leggi = IO.File.OpenText("c:	est.txt")
            While leggi.Peek <> -1
                riga = leggi.ReadLine()
                TextBox2.Text = riga
                d = TextBox2.Text.Split(",")
                For r = 0 To UBound(d)
                    TextBox3.Text = (d(0))
                    Button1.Text = (d(1))
                    Button2.Text = (d(2))
                    Button3.Text = (d(3))
                    Button4.Text = (d(4))
                    TextBox5.Text = (d(5))
                    'comandi per inserire jpg
                    TextBox4.Text = foto
                Next
            End While
            leggi.Close()
        End Sub



  • di HarryBosch data: 21/02/2013 18:31:14

    Mi son dimenticato di risistemare il tuo percorso dove ho tolto il vb:
    Open .... c:vb est.txt


  • migliora ma....
    di chpd (utente non iscritto) data: 22/02/2013 15:36:32

    Ho fatto un passetto avanti ma...
    grazie per la risposta

    ps ("c:vb est.txt") è il percorso dei database delle domande

    spero di essere stato suff. chiaro
     
      Private Sub Button8_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
            'tasto carica domanda button8
            leggi = disco.OpenText("c:vb	est.txt")
            riga = leggi.ReadLine()
            ListBox1.Items.Add(riga)
            While leggi.Peek <> -1
                d = riga.Split(",")
                'textbox della domanda
                TextBox3.Text = d(0)
                'tasti di risposta
                Button1.Text = d(1)
                Button2.Text = d(2)
                Button3.Text = d(3)
                Button4.Text = d(4)
                'risposta esatta
                TextBox5.Text = d(5)
                'tasto per caricare eventualmente la foto
                TextBox6.Text = d(6) : Exit Sub 'aspetta la risposta dei button 1,2,3,4
    
            End While
            leggi.Close()
        End Sub                                (l'errore potrebbe essere in EXIT SUB, se lo tolgo mi va in errore, se lo lascio non carica il ciclo,la  seconda domanda,ect ect)
    
     Dim riga As String
            leggi = disco.OpenText("c:vb	est.txt")
            While leggi.Peek <> -1
                riga = leggi.ReadLine()
                ListBox1.Items.Add(riga)
                TextBox2.Text = riga
                MsgBox("ok")
            End While
            leggi.Close()
        End Sub  (in questo modo esegue il ciclo ad ogni conferma tasto msgbox, ma non è abbinata ai button)
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ' Dim riga As String
            'leggi = disco.OpenText("c:vb	est.txt")        (FORSE NON SERVE)
    
           
            If TextBox3.Text = "" Then
            ElseIf Button1.Text = TextBox5.Text Then
                Button1.BackColor = Color.Green
                MsgBox("Risposta  esatta", MsgBoxStyle.Information, "AVVISO")
            ElseIf Button1.Text <> TextBox5.Text Then
                Button1.BackColor = Color.Red
                MsgBox("La risposta esatta è:   " & TextBox5.Text, MsgBoxStyle.Information, "La risposta è errata")
            End If
            Button1.BackColor = Color.LightGray
        End Sub                   (questo è uno dei 4 tasti di risposta................ dov'è che sbaglio?)
    



  • di Vecchio Frac data: 22/02/2013 18:23:59

    Scusate ma...
    Private Sub Button8_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

    Questo non è codice VBA, è VB.Net... in Excel 2010 è accettabile?

    p.s. noto adesso che l'argomento della discussione è taggato "vb 2010" e allora mi sa che siamo OT
    Comunque non si possono mettere Exit Sub e End Sub a caso tra gli statements e sperare che qualcosa magicamente funzioni... anche se è VB :)





  • di HarryBosch data: 22/02/2013 19:15:35

    Si, proprio vb.net e non credo che Excel 2010 digerisca la cosa ^_^
    Comunque io stavo rispondendo a "tema" al nostro amico che invece ha piazzato la routine proposta in mezzo ai due codici !?
    Ancor meno digeribile :)

    @ chpd
    Piuttosto ci sono da sistemare alcune cosette: innanzitutto la routine che ti ho messo e che sostituiva in toto la tua prima sub, non importa la prima riga bensì importa soltanto l'ultima riga del file di testo inserito nel percorso indicato; quel ciclo leggi.Peak <> -1 continua a scorrere le righe finchè non trova nulla e ovviamente si ferma sull'ultima trovata.
    I valori saranno quindi assegnati ai vari pulsanti, mentre la textbox3 conterrà la risposta corretta (e quindi impostata a visible = false in partenza).
    Non capisco perché la textbox2 debba invece assumere tutta la riga ?

    La seconda routine è completamente da reimpostare: analizzi soltanto la scelta del Button1 quando invece le risposte si trovano sui vari pulsanti.
    Mi è piuttosto oscuro anche quel valore "foto" che hai inizializzato come integer ?

    Si dovrà:
    - creare un sorteggio delle stringhe inserite nel file di testo (in modo da generare una chiamata casuale del quiz)
    - fare in modo che se i sorteggi sono tot (ad esempio 10 domande), non si ripeti la stessa domanda.
    - sarebbe bello che le domande avessero un livello di difficoltà in modo che, domanda dopo domanda, venga pescata una domanda sempre più difficile
    - se si sbaglia la domanda si deve uscire dal gioco e ricominciare con un nuovo quiz

    Se ti interessa, la cosa mi stimola e posso darti una mano ^_^
    E magari poi mettiamo il quiz a disposizione degli altri utenti, sempre se ti va...


  • A H.Bosch e a chi vorrà
    di chpd (utente non iscritto) data: 22/02/2013 21:58:24

    Ciao HarryBosch innanzitutto grazie per essere così disponibile e veloce nel rispondere.
    Se l'idea ti interessa, beh.... sono il primo ad esserne contento, anche se ti faccio da subito presente che se il tuo livello è ingenieristico, il mio è da elementari! e con poche idee, ma confuse .
    Detto questo, io sto usando visual bascic 2010 express e non necessariamente lo voglio abbinare ad Excel, ma piuttosto creare un applicazione, vedremo, se sempre ti va, fin a che punto si possa arrivare.
    Veniamo al dunque, poi in corso d'opera tutto sarà modificabile e migliorabile.
    L'idea mia era di creare un faxsimile del milionario inizialmente per poter poi coinvolgere bambini/ragazzini, parto dai miei nipotini, quindi creare un AUTO-milionario che possa passare da "padre in figlio".
    1. creare una o più combobox dove inserire domande a tema con vari livelli e combox con una miscellanea
    2. livelli di combobox per esempio domande per bambini 5/7 7/9 e via dicendo fino al livello adulti non inteso come xxx.
    3 inserire una progressbar per porre un limite di tempo, un max di domande sbagliate dove interrompere il gioco
    Ma la cosa a mio avviso più importante è creare un listbox.items.add dove tutti possano aggiungere domande in modo che possa diventare quasi un gioco nazionale con all'inizio 10 misere domande per settore e livello, ma entro un anno possa contenere milioni di domande (pensare in grande non fa male!!!!) magari da poter dar a scuole oratori o centri di aggregazione. il tutto dovrà essere OBBLIGATORIAMENTE free, avrei un sacco di idee da infilarci dentro, ma per ora credo di essere stato logorroico a sufficienza, quindi pensaci fammi sapere
    Ps il dim foto as integer era inserito per importare assieme alla domanda la foto al riguardo.
    esempio per bambini di 6/7 anni, domande semplici dove le foto "fanno la risposta"., quindi avevo programmato
    -(domanda)0, (risp)1,2,3,4, (risp esatta)5,6 (foto)



  • di HarryBosch data: 23/02/2013 02:27:00

    Ci ho già pensato ^_^
    E l'idea in generale mi piace proprio. Tant'è che ho già messo mano...
    Il mio livello non è "ingegneristico", ma ci smanetto abbastanza bene, e per un programma di questo tipo possiamo arrivare ad un buon risultato.

    Alcune dritte prima di iniziare con la stesura del codice:
    - intanto è bene farsi un'idea generale di tutto ciò che farà il programma, perlomeno nella fase principale; per i particolari si possono sempre fare successive integrazioni
    - per far questo, ma ciò è un mio modo di operare, preferisco costruire in partenza la form del programma, che sarà comunque "abbellita" alla fine
    - si passa quindi al codice, e visto che più persone potrebbero metterci le mani (siamo qua per questo) è bene cercare di renderlo fin da subito il più leggibile possibile: la prima regola è quella di assegnare ad ogni controllo un nome caratteristico, con il prefisso iniziale che indichi il relativo controllo; per capirci:
    h t t p://support.microsoft.com/kb/173738/it
    In questo modo anche l'utilizzo dell'Intellisense sarà immediato.

    Ho già preparato un primo esempio, ma mettici tranquillamente le mani se vuoi aggiungere o modificare i controlli. Al momento, sulla base della tua descrizione ho pensato a questo, ma la strada è ancora lunga.
    Se analizzi bene la sub Risposta_click potrai capire come in un colpo solo sia abbastanza semplice controllare tutti e 4 i pulsanti (cosa che in vba si può fare soltanto creando un'apposita classe).
    Ho inserito anche il componente Timer per la gestione della progress bar. Se premi "Avvia Quiz" la vedrai all'opera.

    Ti stimolo a fare questo:
    - fermare la progress bar nel momento in cui premi un pulsante;
    - assegnare il colore rosso o verde al pulsante sbagliato o corretto; la risposta sta nella textbox in basso a destra e puoi modificarla con i nomi dei pulsanti che sono cmdA, cmdB, cmdC e cmdD, così testi la risposta; per riferirti al pulsante premuto hai già quello che ti serve: "btn" sarà il bottone premuto al momento.
    - sistemare il codice ancora commentato, in modo da importare nei pulsanti una stringa dal file di testo. Al momento inserisci una sola, che poi pensiamo a creare la randomizzazione.

    Ovviamente tutte le modifiche, aggiunte o quant'altro sono ben accette, da tutti coloro che volessero partecipare.
    Nota che la discussione sarebbe stata da aprire nell'altro ramo del Forum :)



  • di HarryBosch data: 26/02/2013 19:15:21

    Ok... sono andato avanti e ho aggiunto qualcosa; carico il nuovo rar.

    Ricordo a tutti gli interessati che è possibile aprire il progetto utilizzando Visual Studio Express, liberamente scaricabile. Il progetto è realizzato in visual basic .net.

    E' possibile lanciare direttamente l'applicazione per vederne lo stato attuale, senza aver installato Visual Studio, eseguendo il file che si trova all'interno della cartella -->bin -->Debug --> quiz milionario.exe

    Prima di continuare attendo tue notizie...



  • di HarryBosch data: 26/02/2013 19:17:39

    Per aprire correttamente l'applicazione è necessario aver aggiornato il sistema al Framwork 4.0


  • sempre in ritardo
    di chpd (utente non iscritto) data: 28/02/2013 18:36:49

    Ti allego il file un po' modificato, dagli un' occhiata e dimmi come ti sembra l'impostazione ed il resto.
    Ho problemi con la schermatina (da abbellire) d' inizio, dove dovrei inserire una combo con richiami a tre file.txt diversi di domande tipo, bambini, a tema, miscellanea,
    in più nel riquadro grande sarebbe a mio avviso opportuno collegare le domande a delle immagini, soprattutto per coinvolgere di + i piccoli o anche creare domande "visive"

    PS programmo come una schiappa, mi ci son voluti 5 gg. per "capire" un poco la tua programmazione, comunque grazie.
    ciao Gm



  • di HarryBosch data: 04/03/2013 20:54:11

    Ho scaricato il file qualche giorno fa, ma non ho proprio avuto un momento di tranquillità in questi giorni.
    Appena possibile vedo di continuare con il lavoretto..
    Graziosa la maschera con l'idea dei due concorrenti ^_^



  • di HarryBosch data: 19/03/2013 20:39:26

    Non mi sono dimenticato.
    Solo che non ho avuto proprio tempo di dedicarmi al progettino.
    Riporto in "prima fila" il thread per ricordar"mi" di proseguire ^_^

    Dedicato anche a chi volesse cimentarsi...


  • piccole modifiche
    di chpd (utente non iscritto) data: 20/03/2013 09:10:00

    Ciao, sto facendo alcune modifiche, penso che il tutto sia a buon punto, dovrei capire come collegare un immagine adeguata alla domanda in random e il modo per alternare le due squadre.
    Allego file