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 - tutto su una riga da una specifica parola
Forum - C# / VB.NET - tutto su una riga da una specifica parola - Pagina 2

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


Messaggi: 18
Iscritto: 09/09/2012

Segnala al moderatore
Postato alle 17:49
Venerdì, 05/10/2012
io ho un file txt gia predefinito che è composto cosi:
SERIE 239-FD-GFD-GDF-
CIA-CIAO
SERIE 240-FDSF-FSD-FSD-
FFSD-FDS-
E COSI VIA.....

quindi vorrei che ogni riga iniziasse con la parola "SERIE"

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:27
Lunedì, 08/10/2012
uhmm.

ma se il file è già impostato così e un pò un casino organizzarlo come dici.

da quel che ho visto hai uno spazio vicino alla parola SERIE è un a capo.

scrivendomi solo E COSI VIA.... non si capisce na mazza.
perchè non sò sotto com'è strutturato.

qui finisce

SERIE 239-FD-GFD-GDF-
CIA-CIAO

mentre sotto finisce con il trattino.....
e così non posso aiutarti...

o mi scrivi chiaramente la struttura del file
altrimenti nada.


SERIE 240-FDSF-FSD-FSD-
FFSD-FDS-


nel caso fossero tutti uguali in questo modo
SERIE 239-FD-GFD-GDF-
CIA-CIAO

ti basta fare così
ti ho fatto questo rudimentale e semplicissimo codice in C#
in vb.net non sò farlo mi spiace. ma odio il vb.net


Codice sorgente - presumibilmente C#

  1. StreamReader sr = new StreamReader("C:\\ciao.txt");
  2.             string st = sr.ReadToEnd();
  3.             sr.Close();            
  4.  
  5.             string[] t = st.Split();
  6.             int parti_per_righa = 0;
  7.  
  8.             List<string> righe = new List<string>();
  9.             string parte = String.Empty;
  10.          
  11.             for (int i = 0; i < t.Length; i++)
  12.             {
  13.                 parti_per_righa++;
  14.  
  15.                 if (parti_per_righa == 1) { parte = parte + t[i] + " "; }
  16.                 if (parti_per_righa == 2) { parte = parte + t[i]; }
  17.                 if (parti_per_righa == 4) { parte = parte + t[i]; }
  18.  
  19.                 if (parti_per_righa == 5) { righe.Add(parte); parte = ""; parti_per_righa = 0; }
  20.                
  21.             }
  22.  
  23.             for (int i = 0; i < righe.Count; i++)
  24.             {
  25.                 MessageBox.Show(righe[i]);
  26.             }


Ultima modifica effettuata da Thejuster il 08/10/2012 alle 11:56


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 13:36
Lunedì, 08/10/2012
carichi il testo del file in una stringa con uno StreamReader (.ReadToEnd)
fai un replace nella stringa sostituendo il ritorno a capo (ControlChars.NewLine) con una stringa vuota: ""
poi splitti la stringa usando come separatore la stringa "SERIE " (con lo spazio finale)
otterray un array, lo fai scorrere e aggiungi ad ogni elemento dell'array la stringa "SERIE " all'inizio es. array(i) = "SERIE " & array(i)

avrai un array formattato come serve a te

Ultima modifica effettuata da ampeg il 08/10/2012 alle 13:39
PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 19:52
Lunedì, 08/10/2012
Prova così, chiedi se c'è qualcosa che non capisci

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  2.  
  3.     ' Leggo il testo dal file e lo metto nella variabile sBuffer0
  4.     Dim sr As New IO.StreamReader("d:\test.txt")
  5.     Dim sBuffer0 As String = sr.ReadToEnd()
  6.     sr.Close()
  7.  
  8.     ' Sostituisco tutti i NewLine con una stringa vuota
  9.     Dim sBuffer1 As String = sBuffer0.Replace(ControlChars.NewLine, "")
  10.  
  11.     ' Splitto la stringa sBuffer1 ottenendo un array senza la parola "SERIE"
  12.     Dim sBuffer2() As String = Split(sBuffer1, "SERIE ", , CompareMethod.Text)
  13.  
  14.     ' Riaggiungo ad ogni elemento dell'array la parola "SERIE "
  15.     ' l'elemento zero contiene una stringa vuota per questo parto da 1
  16.     For i As Integer = 1 To sBuffer2.Length - 1
  17.       sBuffer2(i) = "SERIE " & sBuffer2(i).Replace(" ", "")
  18.     Next
  19.  
  20.     ' Unisco gli elementi dell'array in un unica stringa
  21.     Dim sOut As String = Strings.Join(sBuffer2, ControlChars.NewLine)
  22.  
  23.     ' Elimino il primo NewLine (relativo all'elemento zero dell'array)
  24.     ' e assegno la stringa ad una TextBox
  25.     TextBox1.Text = Replace(sOut, ControlChars.NewLine, "", 1, 1)
  26.  
  27.   End Sub


PM Quote
Avatar
antoniobar (Normal User)
Newbie


Messaggi: 18
Iscritto: 09/09/2012

Segnala al moderatore
Postato alle 22:57
Lunedì, 08/10/2012
grazieeeeeeee...perfetto!!! sei un grande ampeg!!!:):)

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo