AJUDA EM ERRO
                    Boa tarde comunidade,
Estou a criar uma aplicação em vb2010, que permite guardar determinados registos numa ficheiro csv, mas ao adicionar novos registos na aplicação, ocorre um erro que não consigo deslindar porque acontece.
A app usa uma listview para mostrar os registos adicionados no ficheiro CSV.
Erro:

Form principal:

Ficheiro CSV formatado:

onde está 1, o texto deveria aparecer como [Ô]teste (123|123)[Ô] sem aspas
em 2 deveria ter lá o valor 1
Aqui fica o código até agora que tenho escrito:
Não sei mais que tente, já tentei adicionar mais uma coluna à listview, mas mesmo assim o erro acontece, e não insere o texto correctamente no ficheiro CSV.
Obrigado pela ajuda. Deixo o projecto em anexo caso seja mais fácil de ver qual o erro.
            Estou a criar uma aplicação em vb2010, que permite guardar determinados registos numa ficheiro csv, mas ao adicionar novos registos na aplicação, ocorre um erro que não consigo deslindar porque acontece.
A app usa uma listview para mostrar os registos adicionados no ficheiro CSV.
Erro:

Form principal:

Ficheiro CSV formatado:

onde está 1, o texto deveria aparecer como [Ô]teste (123|123)[Ô] sem aspas
em 2 deveria ter lá o valor 1
Aqui fica o código até agora que tenho escrito:
  
Imports Microsoft.VisualBasic
Imports Microsoft.VisualBasic.CompilerServices
Imports System.IO
Imports System.Data
Imports System.Runtime.CompilerServices
Imports System.Collections.Generic
Imports System.ComponentModel
Public Class Form1
    Private ara As String()
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        atualicar()
        atualifar()
    End Sub
    Public Sub atualicar() [ô]atualizar aldeias
        Me.ListView3.Items.Clear()
        Dim streamreader1 As System.IO.StreamReader = New System.IO.StreamReader(System.Windows.Forms.Application.StartupPath & [Ô]/cfa.csv[Ô])
        Dim str1 As String = [Ô][Ô]
        Dim object1 As Object = CType(1, Integer)
        Do
            str1 = streamreader1.ReadLine()
            Dim array1 As String() = Strings.Split(str1, [Ô];[Ô], -1, CompareMethod.Binary)
            If (str1 = Nothing) Then
                object1 = CType(2, Integer)
            Else
                Dim listviewitem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(array1(0), 1)
                listviewitem1.SubItems.Add(array1(1))
                listviewitem1.SubItems.Add(array1(2))
                listviewitem1.SubItems.Add(array1(3))
                listviewitem1.SubItems.Add(array1(4))
                listviewitem1.SubItems.Add(array1(5))
                listviewitem1.SubItems.Add(array1(6))
                listviewitem1.SubItems.Add(array1(7))
                listviewitem1.SubItems.Add(array1(8))
                listviewitem1.SubItems.Add(array1(9))
                listviewitem1.SubItems.Add(array1(10))
                listviewitem1.SubItems.Add(array1(11))
                listviewitem1.SubItems.Add(array1(12))
                Me.ListView3.Items.AddRange(New System.Windows.Forms.ListViewItem() {listviewitem1})
            End If
        Loop While Not (Not (Not (Not (Operators.ConditionalCompareObjectNotEqual(object1, CType(2, Integer), False)))))
        streamreader1.Close()
    End Sub
    Public Sub atualifar() [ô]atualizar farms
        Me.ListView2.Items.Clear()
        Dim streamreader1 As System.IO.StreamReader = New System.IO.StreamReader(System.Windows.Forms.Application.StartupPath & [Ô]/cva.csv[Ô])
        Dim str1 As String = [Ô][Ô]
        Dim object1 As Object = CType(1, Integer)
        Do
            str1 = streamreader1.ReadLine()
            Dim array1 As String() = Strings.Split(str1, [Ô];[Ô], -1, CompareMethod.Binary)
            If (str1 = Nothing) Then
                object1 = CType(2, Integer)
            Else
                Dim listviewitem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(array1(0), 1)
                listviewitem1.SubItems.Add(array1(1))
                listviewitem1.SubItems.Add(array1(2))
                listviewitem1.SubItems.Add(array1(3))
                listviewitem1.SubItems.Add(array1(4))
                listviewitem1.SubItems.Add(array1(5))
                listviewitem1.SubItems.Add(array1(6))
                listviewitem1.SubItems.Add(array1(7))
                Me.ListView2.Items.AddRange(New System.Windows.Forms.ListViewItem() {listviewitem1})
            End If
        Loop While Not (Not (Not (Not (Operators.ConditionalCompareObjectNotEqual(object1, CType(2, Integer), False)))))
        streamreader1.Close()
    End Sub
    [ô]farms
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        [ô]add
        If Not (Not (((((((((Me.cf1.Text = [Ô][Ô]) Or (Me.cfx.Text = [Ô][Ô])) Or (Me.cfy.Text = [Ô][Ô])) Or (Me.cfb.Text = [Ô][Ô])) Or (Me.cfp.Text = [Ô][Ô])) Or (Me.cfm.Text = [Ô][Ô])) Or (Me.cfa.Text = [Ô][Ô])) Or (Me.cfe.Text = [Ô][Ô])))) Then
            System.Windows.Forms.MessageBox.Show([Ô]Nenhum campo pode ficar em Branco![Ô], [Ô]Cadastro De Farms[Ô], System.Windows.Forms.MessageBoxButtons.OK)
        ElseIf Not (Not ((((((((Not (Me.cf1.Text = [Ô][Ô]) Or Not (Me.cfx.Text = [Ô][Ô])) Or Not (Me.cfy.Text = [Ô][Ô])) Or Not (Me.cfb.Text = [Ô][Ô])) Or Not (Me.cfp.Text = [Ô][Ô])) Or Not (Me.cfm.Text = [Ô][Ô])) Or Not (Me.cfa.Text = [Ô][Ô])) Or Not (Me.cfe.Text = [Ô][Ô])))) Then
            Dim streamwriter1 As System.IO.StreamWriter = New System.IO.StreamWriter(System.Windows.Forms.Application.StartupPath.ToString() & [Ô]/cva.csv[Ô], True)
            Dim str1 As String = New String({Me.cf1.Text, [Ô]  ([Ô], Me.cfx.Text, [Ô]|[Ô], Me.cfy.Text, [Ô]);[Ô], Me.cfx.Text, [Ô];[Ô], Me.cfy.Text, [Ô];[Ô], Me.cfb.Text, [Ô];[Ô], Me.cfp.Text, [Ô];[Ô], Me.cfm.Text, [Ô];[Ô], Me.cfa.Text, [Ô];[Ô], Me.cfe.Text})
            streamwriter1.WriteLine(str1)
            streamwriter1.Close()
        End If
        Me.atualifar()
    End Sub
    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        [ô]limpar
        cf1.Text = [Ô][Ô]
        cfx.Text = [Ô][Ô]
        cfy.Text = [Ô][Ô]
        cfb.Text = [Ô][Ô]
        cfp.Text = [Ô][Ô]
        cfm.Text = [Ô][Ô]
        cfa.Text = [Ô][Ô]
        cfe.Text = [Ô][Ô]
    End Sub
    Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
        [ô]modificar
        Modificar_Farm.Show()
    End Sub
    Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
        [ô]remover
        Remover_Farm.Show()
    End Sub
    Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
        [ô]atualizar
        Me.atualifar()
    End Sub
    Public Sub DeleteLine(ByRef FileAddress As String, ByRef line As Integer)
        Dim list As New List(Of String)
        list.AddRange(File.ReadAllLines(FileAddress))
        If (line < list.Count) Then
            list.RemoveAt(line)
            File.WriteAllLines(FileAddress, list.ToArray)
        End If
    End Sub
End Class
 Não sei mais que tente, já tentei adicionar mais uma coluna à listview, mas mesmo assim o erro acontece, e não insere o texto correctamente no ficheiro CSV.
Obrigado pela ajuda. Deixo o projecto em anexo caso seja mais fácil de ver qual o erro.
                    Olha nem olhei o codigo todo mais pela mensagem e porque você começou a arrar no 1 e deve ser no 0  ali no add dos subitens fica de 0 a 6 
                
            
                    Valeu pela dica.
vou testar e depois digo algo. brigadão pela dica.
            vou testar e depois digo algo. brigadão pela dica.
                    MADMAX, a dica resolveu o problema do array inserir no local errado, mas agora ainda persiste o que acontece na string 
                
            
                
                        Tópico encerrado , respostas não são mais permitidas