AJUDA EM ERRO

CRACKER 27/02/2014 13:21:03
#435363
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:
  
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.
MADMAX 28/02/2014 17:52:47
#435418
Resposta escolhida
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
CRACKER 01/03/2014 20:08:30
#435445
Valeu pela dica.
vou testar e depois digo algo. brigadão pela dica.
CRACKER 03/03/2014 08:06:36
#435456
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