Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.net] aggiungere testo in una determinata riga
Forum - C# / VB.NET - [VB.net] aggiungere testo in una determinata riga

Avatar
file001 (Normal User)
Rookie


Messaggi: 32
Iscritto: 18/06/2013

Segnala al moderatore
Postato alle 12:53
Martedì, 18/06/2013
Salve a tutti,

questo è il mio problema...ho un file di testo di 3 righe:

Piero
Tofy
.it

vorrei che diventasse così:

Piero
Tofy
Forum
.it

Su internet purtroppo non sono riuscito a trovare niente di interessante :( mi potete aiutare? Grazie in anticipo


pierotofy.it
PM Quote
Avatar
tullio1995 (Normal User)
Rookie


Messaggi: 59
Iscritto: 20/03/2011

Segnala al moderatore
Postato alle 14:56
Martedì, 18/06/2013
Prova a usare un file temporaneo dove appoggiarti, copi il file fino e dove devi inserire la stringa, inserisci la stringa, e poi continui a copiare. Poi rinomini e cancelli il vecchio file


L’uomo ha scoperto la bomba atomica, però nessun topo al mondo costruirebbe una trappola per topi.
PM Quote
Avatar
file001 (Normal User)
Rookie


Messaggi: 32
Iscritto: 18/06/2013

Segnala al moderatore
Postato alle 20:11
Martedì, 18/06/2013
non esiste un metodo più semplice?


pierotofy.it
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 22:16
Martedì, 18/06/2013
Io farei così (non l'ho provato):
Codice sorgente - presumibilmente VB.NET

  1. Dim s As String = My.Computer.FileSystem.ReadAllText("miofile.txt") 'carico il file in una variabile
  2. Dim lines() As String = s.Split(Environment.NewLine) 'ottengo l'array delle righe
  3. Dim c As Integer = 0 'punto dove devi iniziare a scrivere
  4. For i As Integer = 0 To RigaDoveVuoiScrivere 'faccio passare le righe dalla prima a quella dove vuoi scrivere
  5.     c += lines(i).Length + 1 'per ognuna sommo il numero di caratteri della riga + 1 che è il ritorno a capo
  6. Next
  7. s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine) 'inserisco il testo e un ritorno a capo
  8. My.Computer.FileSystem.WriteAllText("miofile.txt", s, False) 'salvo nel file



PM Quote
Avatar
file001 (Normal User)
Rookie


Messaggi: 32
Iscritto: 18/06/2013

Segnala al moderatore
Postato alle 22:26
Martedì, 18/06/2013
Testo quotato

Postato originariamente da GN:

Io farei così (non l'ho provato):
Codice sorgente - presumibilmente VB.NET

  1. Dim s As String = My.Computer.FileSystem.ReadAllText("miofile.txt") 'carico il file in una variabile
  2. Dim lines() As String = s.Split(Environment.NewLine) 'ottengo l'array delle righe
  3. Dim c As Integer = 0 'punto dove devi iniziare a scrivere
  4. For i As Integer = 0 To RigaDoveVuoiScrivere 'faccio passare le righe dalla prima a quella dove vuoi scrivere
  5.     c += lines(i).Length + 1 'per ognuna sommo il numero di caratteri della riga + 1 che è il ritorno a capo
  6. Next
  7. s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine) 'inserisco il testo e un ritorno a capo
  8. My.Computer.FileSystem.WriteAllText("miofile.txt", s, False) 'salvo nel file




per prima cosa ti ringrazio....adesso il codice l'ho provato però mi salva un altro file testo senza la riga che voglio aggiungere


pierotofy.it
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 21:32
Mercoledì, 19/06/2013
Ops ho sbagliato una cosa, invece che
Codice sorgente - presumibilmente Plain Text

  1. s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine)


bisogna mettere
Codice sorgente - presumibilmente Plain Text

  1. s = s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine)


Così dovrebbe funzionare.


PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:30
Giovedì, 20/06/2013
Codice sorgente - presumibilmente VB.NET

  1. Public Sub Aggiungi_linea(filename As String, linea As Integer, testo As String)
  2.  
  3.  
  4.         Dim rtb As New RichTextBox()
  5.         'RichTextBox Provvisorio
  6.         rtb.LoadFile(filename, RichTextBoxStreamType.PlainText)
  7.  
  8.         rtb.Text.Insert(linea, testo)
  9.  
  10.         Dim rtb2 As New RichTextBox()
  11.  
  12.         For i As Integer = 0 To rtb.Lines.Length - 1
  13.                 If i = linea Then
  14.                         rtb2.AppendText(testo & vbLf)
  15.                 End If
  16.  
  17.                 rtb2.AppendText(rtb.Lines(i) + vbLf)
  18.         Next
  19.  
  20.         rtb2.SaveFile(filename, RichTextBoxStreamType.PlainText)
  21. End Sub


Funzione che aggiunge  una linea ad un file esistente. Ovviamente specificando il numero della riga.

Ultima modifica effettuata da Thejuster il 20/06/2013 alle 11:30


PM Quote
Avatar
file001 (Normal User)
Rookie


Messaggi: 32
Iscritto: 18/06/2013

Segnala al moderatore
Postato alle 13:24
Giovedì, 20/06/2013
grazie, adesso ho risolto :)


pierotofy.it
PM Quote