Newsgroup: it.comp.lang.visual-basic
Titolo: Salvataggio informazioni

Ciao a tutti...
Io ho creato un giochino in VB 6 e alla fine volevo inserire una classifica
dei punteggi migliori con i rispettivi nomi. L'unico problema è che non
voglio usare un database access o simili ma salvare i dati in un file tipo
salvataggi.sav o estensioni del genere.
Volevo sapere (possibilmente in modo chiaro e dettagliato) come posso fare
per inserire, prelevare e modificare i dati in un file con un'estensione
particolare.
Grazie in anticipo a tutti coloro che mi risponderanno.
Ghigo    :-)

 particolare.
Probabilmente un semplice file di testo fa al caso tuo, l'estensione non conta.
Partiamo dal presupposto che tu abbia in due vettori i nomi e i punteggi dei giocatori.
Ti faccio un esempio semplificato. Ho creato un form, con una ListBox e tre pulsanti
chiamati cmdSalva, cmdLeggi e cmdPulisci ( la fantasia impera, come vedi ;-)) )
In realtà la ListBox non serve, è solo per vedere quello che succede.
Prova a "rimontare" questo programmino, e fammi sapere se ti va bene.
______________________
' ----------------- nella sezione generali del form
Option Explicit
    Const MaxGiocatori As Integer = 10
    Dim NomiGiocatori(1 To MaxGiocatori) As String
    Dim PunteggiGiocatori(1 To MaxGiocatori) As Long
'------------------ nel form load:
Private Sub Form_Load()
    ' qui li aggiungiamo a mano.
    ' ovviamente deve farlo il tuo programma
    NomiGiocatori(1) = "Arturo"
    PunteggiGiocatori(1) = 1234567
    NomiGiocatori(2) = "Giorgio"
    PunteggiGiocatori(2) = 2345671
    NomiGiocatori(3) = "Gino"
    PunteggiGiocatori(3) = 3456712
    MostraPunteggi
End Sub
' ------------------------ sub mostra punteggi, solo per visualizzare !
Sub MostraPunteggi()
    Dim Giocatore  As Integer
    Dim NomeGioc  As String
    Dim PuntiGioc  As String
    Dim RigaDiTesto As String
    List1.Clear
    For Giocatore = 1 To MaxGiocatori
        If NomiGiocatori(Giocatore) = "" Then
            NomeGioc = "----------------"
        Else
            NomeGioc = NomiGiocatori(Giocatore)
        End If
        If PunteggiGiocatori(Giocatore) = 0 Then
            PuntiGioc = "-"
        Else
            PuntiGioc = PunteggiGiocatori(Giocatore)
        End If
        RigaDiTesto = NomeGioc & ", punteggio: " & PuntiGioc
        List1.AddItem RigaDiTesto
    Next
End Sub
'--------------------- nel cmdLeggi
Private Sub cmdLeggi_Click()
    Dim FileLibero As Integer
    Dim NomeDelFile As String
    Dim Giocatore As Integer
    Dim Punteggio As String
    NomeDelFile = "ScoreList.sav"
    FileLibero = FreeFile
    Open App.Path & "\" & NomeDelFile For Input As FileLibero
    For Giocatore = 1 To MaxGiocatori
        Line Input #FileLibero, NomiGiocatori(Giocatore)
        Line Input #FileLibero, Punteggio
        PunteggiGiocatori(Giocatore) = Val(Punteggio)
    Next
    Close FileLibero
    MostraPunteggi
End Sub
' ----------------------- nel cmdSalva
Private Sub cmdSalva_Click()
    Dim FileLibero As Integer
    Dim NomeDelFile As String
    Dim Giocatore As Integer
    NomeDelFile = "ScoreList.sav"
    FileLibero = FreeFile
    Open App.Path & "\" & NomeDelFile For Output As FileLibero
    For Giocatore = 1 To MaxGiocatori
        Print #FileLibero, NomiGiocatori(Giocatore)
        Print #FileLibero, PunteggiGiocatori(Giocatore)
    Next
    Close FileLibero
End Sub
'-------------------------- nel cmdPulisci
Private Sub cmdPulisci_Click()
    List1.Clear
End Sub
_____________________________________
Buona Pasqua, Gaetano.
--
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------
Real E-address: 
gaet...@hotmail.com




GRAZIE PER GLI AIUTI!!!
e
BUONA PASQUA A TUTTI!!!
Ghigo        :-)

Da quel che o capito a te servirebbe semplicemente un file di testo, giusto?
Allora per creare un file di testo e quindi successivamente leggerlo
potresti fare cosě:
Dim testo As String
testo = "ciao come stai" & vbCrLf
testo = testo & "io sto bene"
Open "c:\testo.txt" For Output As #1
Print #1, testo
Close #1
cosě  crei il file, ovviamente in testo metti tutto quello che ti serve da
stampare e .txt potrebbe diventare .marameo....
poi usi:
Dim Linea
Open "c:\testo.txt" For Input As #1
Do While Not EOF(1)
   Line Input #1, Linea
   Debug.Print Linea
Loop
Close #1
in questo modo leggi riga per riga il file di testo, ovviamente ti devi
ricordare che nella linea 1 c'č pippo, nella linea 2 c'č pluto ecc..
INCONVENIENTI:
Se quello che devi salvare contiene dei caratteri a capo chr(13) & chr(10)
allora devi fare cose un po' piů complesse per esempio inserire delle parole
chiave all'inizio del tuo blocco e alla fine tipo BEGIN e END, ma č una cosa
un pochino brutta, il meglio comunquue sarebbe quello di lasciare stare i
file sequenziali di questo tipo e andarare a vedere i file ad accesso
casuale, qui ti basta salvare i tuoi dati in UDF per poi salvarlo col metodo
Put (il file doveva essere aperto in modo Random o Binari) e leggerli con
Get, lascio a te lo studio...
------------
Ciao e buona pasqua
Sabba