Il codice è corretto, ma str cos'è nel tuo codice?
Cmq, se sei riuscito a mettere ogni riga all'interno della collection liness io proseguirei cosi:
codice:
For i As Integer = 0 To lines.Count - 1
Dim str() As String = lines.item(i).split("|");
Dim final_str As String
final_str = str(0) + "|" + str(7) + "|" + str(1)
' Qui dovresti scrivere nel file, o sovrascrivere il file esistente, o su un nuovo file, la variabile final_str.
Next
Purtroppo il codice non lo provato, ma all'incirca dovresti fare questo, almeno è quello che vuoi ottenere te, anche se per farti un'esempio la stringa in modo diverso da quello che vuoi te.
Ah, ovviamente ho fatto il tutto senza metodo Join, anche se te lo avevo consigliato precedentemente.