Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net] come leggere un file a partire dalla prima posizione?
Forum - C# / VB.NET - [vb.net] come leggere un file a partire dalla prima posizione?

Avatar
albertogil (Normal User)
Newbie


Messaggi: 11
Iscritto: 29/12/2010

Segnala al moderatore
Postato alle 18:33
Mercoledì, 29/12/2010
ciao , come si fa a leggere un File dall'inizio?
Quando apro con opentext legge l'ultima riga perchè quando ho
inserito stringhe nel file ho utilizzato append. Perciò se lo apro parte dall'ultima riga. Se utilizzo createtext cancella tutto e crea il file dall'inizio...

Codice sorgente - presumibilmente VB.NET

  1. Dim writ As StreamWriter = File.AppendText(file1)
  2. writ.WriteLine("Nome: " & txt_nome.Text & " Cognome: " & txt_cognome.Text)
  3. writ.Close()
  4. --------------------
  5. Dim read As StreamReader = File.OpenText(file1)
  6. Do While Not (read.EndOfStream)
  7. str = read.ReadLine
  8.             i = InStr(str, "Cog")
  9.             nom = Mid(str, 7, i - 8)
  10.             cog = Mid(str, i + 9)
  11. read.Close()


Ultima modifica effettuata da albertogil il 29/12/2010 alle 18:37
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
0
Down
V
Segnala al moderatore
Postato alle 19:08
Mercoledì, 29/12/2010
A vederlo così ti rimane solo l'ultima riga perchè sovrascrivi sempre str

PM
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 21:56
Mercoledì, 29/12/2010
Testo quotato

Postato originariamente da albertogil:


Quando apro con opentext legge l'ultima riga perchè quando ho
inserito stringhe nel file ho utilizzato append. Perciò se lo apro parte dall'ultima riga. Se utilizzo createtext cancella tutto e crea il file dall'inizio...




sciocchezze....quando apri un file il puntatore si posiziona SEMPRE all'inizio del file.
Come ti è stato detto, salvando ogni volta i valori nelle stesse variabili alla fine avrai solo l'ultima riga.


PS: un consiglio, stai usando .NET e non VB6. E' meglio usare i metodi nativi di .NET:

String.IndexOf(..) invece di Instr
String.Substring(...) invece di Mid

PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
0
Down
V
Segnala al moderatore
Postato alle 18:51
Giovedì, 30/12/2010
Prova così, premetto che io uso C# ma qualcosa di VB la so

Codice sorgente - presumibilmente VB.NET

  1. Dim writ As StreamWriter = File.AppendText(file1)
  2. writ.WriteLine("Nome: " & txt_nome.Text & " Cognome: " & txt_cognome.Text)
  3. writ.Close()
  4. --------------------
  5. Dim read As StreamReader = File.OpenText(file1)
  6. testo = ""
  7. Do While Not (read.EndOfStream)
  8. str =  read.ReadLine
  9. testo = testo & vbcrlf & str
  10.             i = InStr(str, "Cog")
  11.             nom = Mid(str, 7, i - 8)
  12.             cog = Mid(str, i + 9)
  13. read.Close()



Così facendo avrai in testo tutto il documento

PM