alpi39 (Normal User)
Pro
Messaggi: 63
Iscritto: 07/03/2008
|
Salve a tutti coloro che frequentano questo Forum.
Mi presento: Ho 69 anni e sono un autodidatta.
Vorrei apprendere un poco la programmazione in VB.NET.
Ho iniziato da poco a fare un programma per una Agenda telefonica.
Riesco a far registrare un record, ma quando voglio aggiungere un record nuovo, mi sovrascrive questo nuovo a quello già registrato.
So che per tantissimi di voi realizzare questo è una cosa facilissima, ma per me che vivo in Brasile e non posso avere un manuale in lingua italiana è un vero problema.
Un sentito GRAZIE a chi vorrà rispondermi.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Usi un database access o sql o xml? Oppure usi qualche altra forma di memorizzazione con serializzazione? Non hai fornito molti indizi sul tuo programma, quindi finché non sarai più preciso non posso aiutarti.
Se vuoi una guida in italiano:
http://totem.altervista.org
|
|
alpi39 (Normal User)
Pro
Messaggi: 63
Iscritto: 07/03/2008
|
Hai ragione, Totem. Chiedo scusa
Ho iniziato solo ora a cercare di conoscere il VB.NET e poiché non so usare il data base, per il momento mi limito a registrare i testi su di un file.txt.
Ho preso come base un esempio dalla lezione N° 30 di Piero Tofy dove fa scrivere la parola "ciao" in un File.txt, ma, partendo da lí non sono stato capace di proseguire inserendo altre righe.Posso postarti le righe che ho inserito nel programma: un'Agenda per memorizzare numeri di telefono di amici e conoscenti.
_____________________________________________________________
Dim w As New IO.StreamWriter("C:\Agenda.txt")
w.WriteLine(Nominativo)
w.Close()
'Alla fine, troverete in C:\ il file File.txt contenente il testo "Ciao!"
Close()
_____________________________________________________________
Ultima modifica effettuata da alpi39 il 24/03/2008 alle 12:23 |
|
alpi39 (Normal User)
Pro
Messaggi: 63
Iscritto: 07/03/2008
|
Scusami,Totem.
Come certamente avrai notato, la Rem in basso è rimasta quella dell'esempio di Piero Tofy.
P.S.
Ho salvato sul mio computer la tua guida al VB dotNET
ma , per ora, aiutami a risolvere questo mio problema.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Da quello che ho capito, hai letto solo il capitolo 30 per risolvere il tuo problema. Quello che non hai considerato è che ti serve un modo per analizzare non uno ma più dati, ossia un ciclo For. Quindi, ammettendo che i dati siano registrati in un array di stringhe (poichè non mi hai ancora detto come li memorizzi a run-time):
Codice sorgente - presumibilmente VB.NET |
Dim Persons() As String '... Dim W As New IO.StreamWriter("C:\File.txt") For I As Int16 = 0 To Persons.Length - 1 W.WriteLine(Persons(I)) Next W.Close()
|
|
|
alpi39 (Normal User)
Pro
Messaggi: 63
Iscritto: 07/03/2008
|
Il mio programma è composto da varie TextBox.
Una per il nome, una per il cognome, una per l'indirizzo ecc. Una volta che in queste TextBox sono stati inseriti i dati, questi, separati ognuno da una virgola, vengono uniti a formare un'unica stringa che va ad essere assegnata alla variabile "nominativo" non l'aggiunta del carattere "a capo".
Ed è appunto questa variabile che va ad essere registrata nel File "Rosana.txt", unico problema è che l'ultima registrazione non va ad accodarsi a quella precedente, ma prende il suo posto ed io rimango sempre con un unico nominativo registrato.
Per maggior chiarezza, posto una parte del listato.
___________________________________________________
Dim PrimeiroNome As String = ""
Dim SobreNome As String = ""
Dim Rua As String = ""
Dim Numero As String = ""
Dim Cidade As String = ""
Dim UF As String = ""
Dim CEP As String = ""
Dim Bairro As String = ""
Dim TelefoneFixo As String = ""
Dim TelefoneCelular As String = ""
Dim Notas As String = ""
Dim Nominativo As String = ""
Dim Percorso As String = "C:\Rosana.txt\"
PrimeiroNome = TextBox1.Text
SobreNome = TextBox2.Text
Rua = TextBox3.Text
Numero = TextBox4.Text
Cidade = TextBox5.Text
UF = TextBox6.Text
CEP = TextBox7.Text
Bairro = TextBox8.Text
TelefoneFixo = TextBox9.Text
TelefoneCelular = TextBox10.Text
Notas = TextBox11.Text
Nominativo = PrimeiroNome & "," & SobreNome & "," & Rua & "," & Numero & "," & Cidade & "," & UF & "," & CEP & "," & Bairro & "," & TelefoneFixo & "," & TelefoneCelular & "," & Notas & Constants.vbCrLf
'Crea il file Rosana.txt se assente oppure lo apre in lettura e lo aggiorna
'attraverso la determinazione della sua esistenza (metodo fileExist)
Dim w As New IO.StreamWriter("C:\Rosana.txt")
w.WriteLine(Nominativo)
w.Close()
'Alla fine, troverete in C:\ il file Rosana.txt contenente il testo
Close()
___________________________________________________
Non ho letto solo la lezione Nº30 della guida di Piero Tofy, ma è su quella che mi sono soffermato maggiormente per capire come fare a registrare un testo in un File.txt.
Ultima modifica effettuata da alpi39 il 26/03/2008 alle 0:30 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Codice sorgente - presumibilmente Plain Text |
IO.File.AppendText("File", "Testo")
|
Il tuo codice è molto lungo e passa attraverso passaggi non necessari, come l'assegnazione dei valori della textbox a una variabile. Io ti suggerirei qualcosa di più dinamico e conciso:
Codice sorgente - presumibilmente VB.NET |
Dim S As String = "" For I As Byte = 1 To 11 Do S &= Me.Controls("TextBox" & I).Text If I < 11 Then S &= "," Next S &= vbCrLf IO. File. AppendText("C:\Rosana.txt", S )
|
|
|
alpi39 (Normal User)
Pro
Messaggi: 63
Iscritto: 07/03/2008
|
Grazie, Totem per il sorgente che mi hai allegato, ma una domanda mi sorge in modo urgente da sottoporti:
ma le 11 DIM possono restare o debbo evitare anche quelle?
Vedi io ho lavorato un poco con il vecchio e glorioso Basic dove tutto (o quasi) doveva essere dichiarato.
Con il codice che tu mi hai allegato è sufficiente inserirlo nel listato togliendo da:
DIM PrimeiroNome As String = ""
fino al secondo
Close ()
oppure le DIM a partire da
DIM PrimeiroNome As String = ""
fino a
DIM Notas As String = ""
debbono o possono rimanere?
Ho già detto che io sono un principiante anche se la mia età è abbastanza avanzata. 69 anni!!!
Ma la programmazione mi affascina ed è per questo che vorrei apprendere il Visual Basic .NET
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Che tu abbia 69 anni mi risulta difficile crederlo, ma farò uno sforzo. Sai, questa è stata per... 2 anni, mi sembra, la "Community dei giovani programmatori" e comunque non ho mai incontrato su Internet alcuna persona di età superiore ai 50.
Ad ogni modo... Il listato che ti ho fornito è sufficiente a svolgere tutto, non ti serve dichiarare niente altro e ti spiego perchè. Nel tuo sorgente hai usato le variabili per immagazzinare valori da textbox e quindi tali veriabili venivano poi utilizzate per formare tramite concatenazione una nuova stringa. Ma potevi evitare questo, poichè era possibile concatenare anche soltanto le proprietà Text delle textbox. Inoltre, poichè queste sono numerate, risulta ancora più semplice utilizzare un ciclo For, che riduce notevolmente la mole di codice da scrivere.
|
|