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: 5557
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 ...
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?


-NO-     Windows 95
-NO-     Windows 98
-NO-     Windows ME
-NO-     Windows XP
-LOL!-   WinXP.ProSP3+Crack+Keygen[Ita].iso
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5557
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 ...
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


a domanda precisa, risposta precisa...
a domanda generica, risposta generica...
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


che le risposte ti siano servite o meno un tuo riscontro è segno di cortesia.

http://www.alfonsonatale.altervista.org/
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:


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5557
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 ...
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo