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 - Problema scrittura nel mezzo di un file
Forum - C# / VB.NET - Problema scrittura nel mezzo di un file

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti. Ho questo "dilemma":asd:
Io dovrei scrivere un delle righe in un file di testo, ma la "complicanza" è questa:
Questo file di testo è già scritto in questa maniera

Codice sorgente - presumibilmente Plain Text

  1. RIGA 1
  2. RIGA2
  3. RIGA3
  4. ...
  5. RIGAX
  6.  
  7. RIGAT
  8. RIGAT
  9. RIGAT



Io vorrei che il programma intercetti quella riga vuota, che scrivi lì dentro le istruzioni che gli do e che poi una volta scritta lasci un altra riga vuota... Cioè io vorrei che quel file di testo diventasse adesso così:

Codice sorgente - presumibilmente Plain Text

  1. RIGA1
  2. RIGA2
  3. RIGA3
  4. ...
  5. RIGAX
  6. RIGA AGGIUNTA
  7. RIGA AGGIUNTA
  8. ...
  9. RIGA AGGIUNTA
  10.  
  11. RIGAT
  12. RIGAT



Come potrei fare? Grazie mille in anticipo

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6108
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:02
Lunedì, 18/01/2010
*Non* si scrive in mezzo ai file sequenziali ...

Il modo corretto è scrivere un secondo file a partire dal primo, con le righe aggiunte ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
ilmettiu (Ex-Member)
Pro


Messaggi: 88
Iscritto: 17/09/2009

Segnala al moderatore
Postato alle 20:14
Lunedì, 18/01/2010
Che altri tipi di file ci sono oltre a quelli sequenziali?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6108
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:17
Lunedì, 18/01/2010
Non esistono diversi "tipi" di file, ma diverse "modalità di accesso" ai file ...

Un file è comunque una sequenza di byte.

Se la sequenza viene "interpretata" in una certa maniera (indicando un determinato "modo di accesso") allora potrai parlare di file "sequenziale" o "binario" (accesso sequenziale o accesso diretto).

In ogni caso, non potrai aggiungere dati se non sposti quelli seguenti. Quindi, in questo caso, il file va riletto e scritto da un'altra parte con i dati nuovi.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 21:49
Lunedì, 18/01/2010
Testo quotato

Postato originariamente da nessuno:

Non esistono diversi "tipi" di file, ma diverse "modalità di accesso" ai file ...

Un file è comunque una sequenza di byte.

Se la sequenza viene "interpretata" in una certa maniera (indicando un determinato "modo di accesso") allora potrai parlare di file "sequenziale" o "binario" (accesso sequenziale o accesso diretto).

In ogni caso, non potrai aggiungere dati se non sposti quelli seguenti. Quindi, in questo caso, il file va riletto e scritto da un'altra parte con i dati nuovi.


precisissimo

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:51
Martedì, 19/01/2010
Ok... dato che non ci capisco molto di file sequenziali e file d'accesso (grazie comunque per le risposte), c'è un modo pratico per poter fare ciò che serve a me? o proprio non c'è modo?

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 16:44
Martedì, 19/01/2010
Codice sorgente - presumibilmente VB.NET

  1. Dim s As String
  2. Dim Reader As New IO.StreamReader("Tuofile")
  3. Dim Writer As New IO.StreamWriter("Tuofiletmp")
  4. 'Leggi il tuo file riga per riga
  5. Do While Not Reader.EndOfStream
  6.   s = (Reader.ReadLine)
  7.   If s <> "" Then
  8.     'se s non è vuota la scrive nel file temporaneo
  9.     Writer.WriteLine(s)
  10.   Else
  11.     ' altrimenti scrivi quello che vuoi
  12.     Writer.WriteLine("aaaaaaaa")
  13.     Writer.WriteLine("bbbbbbbbbbb")
  14.     Writer.WriteLine("")
  15.   End If
  16. Loop
  17. Reader.Close()
  18. Writer.Close()


Cancelli il tuo file, rinomini il file temporaneo

Ultima modifica effettuata da Alfonso il 19/01/2010 alle 16:45
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:56
Martedì, 19/01/2010
Testo quotato

Postato originariamente da a_butta:

Ok... dato che non ci capisco molto di file sequenziali e file d'accesso (grazie comunque per le risposte), c'è un modo pratico per poter fare ciò che serve a me? o proprio non c'è modo?



Testo quotato

Postato originariamente da nessuno:
Il modo corretto è scrivere un secondo file a partire dal primo, con le righe aggiunte ...



:yup:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6108
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:49
Martedì, 19/01/2010
Testo quotato

Postato originariamente da a_butta:

... file d'accesso ...



Accesso al file !  :noway:

Testo quotato

o proprio non c'è modo?



Come ha sottolineato Totem, mi sembra di avertelo gia' detto ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo