Oppure

Loading
05/10/12 12:44
Thejuster
ma che.....

se puoi esprimerti meglio non fai un errore....

cosa significa

[qute]
ciao a tutti, espongo il mio quesito!!!! ho una file txt che carico all'interno di una textbox cosi formato:
SERIE 239-FD-GFD-GDF-
CIA-CIAO
SERIE 250-FD-GDF-
ANTONIO-FDGDFG

vorrei che ogni riga iniziasse con SERIE:

SERIE 239-FD-GFD-GDF-CIA-CIAO
SERIE 250-FD-GDF-ANTONIO-FDGDFG



cioè nel file txt cosa hai
SERIE 239-FD-GFD-GDF-
CIA-CIAO

o

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

ma cmq anche se non ho capito una cippa posso dirti che il modo migliore per ordinare i dati in un file
o conviene utilizzare un file xml o un file ini.
se invece vuoi utilizzare un file di testo.
assicurati di inserire un separatore per permettere di splittare i dati e ordinarli correttamente

del tipo

SERIE 239-FD-GFD-GDF-CIA-CIAO#
SERIE 250-FD-GDF-ANTONIO-FDGDFG#

allora una volta letto tutto il file splitti il char # e ti riordini tutto in una lista
che è molto più comoda di un array.

mire.forumfree.it/ - Mire Engine
C# UI Designer
05/10/12 15:49
antoniobar
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"
aaa
08/10/12 9:27
Thejuster
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



StreamReader sr = new StreamReader("C:\ciao.txt");
            string st = sr.ReadToEnd();
            sr.Close();             

            string[] t = st.Split();
            int parti_per_righa = 0;

            List<string> righe = new List<string>();
            string parte = String.Empty;
          
            for (int i = 0; i < t.Length; i++)
            {
                parti_per_righa++;

                if (parti_per_righa == 1) { parte = parte + t[i] + " "; }
                if (parti_per_righa == 2) { parte = parte + t[i]; }
                if (parti_per_righa == 4) { parte = parte + t[i]; }

                if (parti_per_righa == 5) { righe.Add(parte); parte = ""; parti_per_righa = 0; }
                
            }

            for (int i = 0; i < righe.Count; i++)
            {
                MessageBox.Show(righe[i]);
            }
   
Ultima modifica effettuata da Thejuster 08/10/12 9:56
mire.forumfree.it/ - Mire Engine
C# UI Designer
08/10/12 11:36
ampeg
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 08/10/12 11:39
aaa
08/10/12 17:52
ampeg
Prova così, chiedi se c'è qualcosa che non capisci

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    ' Leggo il testo dal file e lo metto nella variabile sBuffer0
    Dim sr As New IO.StreamReader("d:\test.txt")
    Dim sBuffer0 As String = sr.ReadToEnd()
    sr.Close()

    ' Sostituisco tutti i NewLine con una stringa vuota
    Dim sBuffer1 As String = sBuffer0.Replace(ControlChars.NewLine, "")

    ' Splitto la stringa sBuffer1 ottenendo un array senza la parola "SERIE"
    Dim sBuffer2() As String = Split(sBuffer1, "SERIE ", , CompareMethod.Text)

    ' Riaggiungo ad ogni elemento dell'array la parola "SERIE "
    ' l'elemento zero contiene una stringa vuota per questo parto da 1
    For i As Integer = 1 To sBuffer2.Length - 1
      sBuffer2(i) = "SERIE " & sBuffer2(i).Replace(" ", "")
    Next

    ' Unisco gli elementi dell'array in un unica stringa
    Dim sOut As String = Strings.Join(sBuffer2, ControlChars.NewLine)

    ' Elimino il primo NewLine (relativo all'elemento zero dell'array)
    ' e assegno la stringa ad una TextBox
    TextBox1.Text = Replace(sOut, ControlChars.NewLine, "", 1, 1)

  End Sub
aaa
08/10/12 20:57
antoniobar
grazieeeeeeee...perfetto!!! sei un grande ampeg!!!:):)
aaa