[vb.net] separtor en double quote

Pagina: 1
Acties:

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Beste programmeurs,

Ik sta weer te kijken met het volgende probleem.
Uit een .csv bestand wil ik regel voor regel lezen (al gelukt).
Elke regel zet ik om naar een arraylist (omdat elke regel een ander aantal items heeft)
De opbouw van een aantal regels ziet er al volgt uit;
code:
1
2
3
4
5
6
7
8
9
10
"ART"¢""¢"0000551270"¢"      551,270"¢"2200005512708"¢"1"¢"STA13"¢"P"¢"A"¢"PAPERTOYS"¢"BUIJNSTERS, P.J."¢""¢"MH"¢"1"¢"10/12/04"¢" 3/05/06"¢"SY"¢"0"¢"1"¢"0008"¢"1499"¢"33547"¢"   0"¢"1"¢"  /  /"¢"  /  /"¢"32945"¢"      0,00"¢"     33.93"¢"STUK"¢"     1"¢"STUK"¢"     1"¢"     1"¢""¢" 1.000"¢""¢"0"¢""¢" 0.00"¢"  /  /"¢"  /  /"¢"     59.95"¢"      0.00"¢"      0.00"¢""¢"0"¢"I"¢""¢"25 x 19"¢"      0.00"¢"     0"¢"N"¢""¢"9040090637"¢"3"¢"3"¢"       0"¢"       0"¢""
""¢"A_O"¢"0000551270"¢"NL"¢""¢" 4/05/2005"¢" 4/05/2005"¢"Speelprenten en papieren speelgoed in Nederland 1640-1920. Op wetenschappelijk nieveau wordt aandacht geschonken aan het tableau van ganzenborden, loterijspelen, diorama's, bouwplaten, knipprenten en andere "papertoys" over een periode van drie eeuwen."
""¢"A_Z"¢"0000551270"¢" 1"¢"416"
""¢"A_Z"¢"0000551270"¢" 2"¢"ILL. IN KLEUR + ZW/W"
""¢"A_Z"¢"0000551270"¢" 3"¢"GEBONDEN"
""¢"A_Z"¢"0000551270"¢" 4"¢"00080108"
""¢"A_Z"¢"0000551270"¢" 4"¢"00030137"
""¢"A_Z"¢"0000551270"¢" 5"¢"PAPIEREN SPEELGOED"
""¢"A_Z"¢"0000551270"¢" 6"¢"ZWOLLE"
""¢"A_Z"¢"0000551270"¢" 7"¢"2005"


Nu is "¢" het scheidingsteken en ook meteen het probleem, want de reader "leest" dit teken gewoonweg niet. Gevolg is dat mijn arraylist maar 1 item bevat.
Vervang ik die "¢" door een ; werkt het wel. Echter ben ik gebonden aan die "¢".
Ook de dubbele quotes haal ik nu op een slechte manier weg.
Iemand een idee hoe ik het werkend ga krijgen?

Dit is wat ik tot nu toe heb,
alleen relevante code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Imports System.IO
Imports System.IO.StreamReader

Partial Class _conversie
    Inherits System.Web.UI.Page

    Sub Page_Load(ByVal s As Object, ByVal e As EventArgs) Handles MyBase.Load

        'als het form gesubmit is gaan we pas over tot het converteren.
        If Page.IsPostBack Then
            'pad naar CSV bestand opgeven.
            Dim CsvFile As String
            CsvFile = Server.MapPath("export.csv")

            'scheidingsteken opgeven.
            Dim Delimiter As Char
            Delimiter = "¢"

            'checken of CsvFile bestaat
            If File.Exists(CsvFile) Then
                'Csv openen.
                Dim sr As StreamReader = File.OpenText(CsvFile)
                'regel declareren.
                Dim Line As String

                'door het Csv bestand loopen.
                Do
                    'regel lezen.
                    Line = sr.ReadLine

                    If Not Line = "" Then

                        'de regel omzetten naar een array zodat we de items kunen doorlopen.
                        Dim ItemsArray As New ArrayList

                        'Line scheiden en in de array zetten.
                        ItemsArray.AddRange(Line.Split(Delimiter))

                        //////// deze loop werkt ook niet
                        Dim Item As String
                        For Each Item In ItemsArray
                            Item = Replace(Item, """", "")
                        Next

                        //////// dit werkt dan wel, dus de " is weg
                        Response.Write(Replace(ItemsArray.Item(4), """", ""))

                    End If

                Loop Until Line Is Nothing
                'zodra we aan het einde zijn stoppen we.

                'stream sluiten
                sr.Close()

            End If
            'einde controle of bestand bestaat.

        End If
        'einde controle pagePostBack.

    End Sub

End Class


Google en Got leverde niets op.

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 22:47

Gonadan

Admin Beeld & Geluid, Harde Waren
Misschien moet je proberen om met de ascii-waarde van het teken te werken. :?

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Gonadan schreef op dinsdag 09 mei 2006 @ 14:51:
Misschien moet je proberen om met de ascii-waarde van het teken te werken. :?
Maar als ik code
code:
1
2
3
4
                    'regel lezen.
                    Line = sr.ReadLine

                    Response.Write(Line & "<br />")

Dan zie ik dat hij dat teken niet eens opneemt, dus split() met dat teken kan dan ook al niet....

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 22:47

Gonadan

Admin Beeld & Geluid, Harde Waren
Predje schreef op dinsdag 09 mei 2006 @ 14:57:
[...]


Maar als ik code
code:
1
2
3
4
                    'regel lezen.
                    Line = sr.ReadLine

                    Response.Write(Line & "<br />")

Dan zie ik dat hij dat teken niet eens opneemt, dus split() met dat teken kan dan ook al niet....
Hoe weet je dan dat het teken er staat? :)

Misschien is het handig om die 'Line' karakter voor karakter de ascii-waarde uit te printen.
Misschien staat er dan een afwijkende waarde tussen :?
Je hebt ook nog verschillende character-sets hè ;)

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:33
Geef een Encoding mee aan je stream-reader.

code:
1
StreamReader r = new StreamReader (fileStream, System.Text.Encoding.Default);

https://fgheysels.github.io/


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
whoami schreef op dinsdag 09 mei 2006 @ 15:20:
Geef een Encoding mee aan je stream-reader.

code:
1
StreamReader r = new StreamReader (fileStream, System.Text.Encoding.Default);
whoami is mijn held _/-\o_
Pagina: 1