2016-11-22 3 views
1

レポートからデータを読み込むプロジェクトを作成していましたが、これはうまくいきましたが、何らかの理由でレポートがすべての文字列を。だから私はストリームの読者を修正して、引用符を取り除くか無視するようにしたい。VB.net streamReader.readline.split()から引用符文字を削除するには

これは、行を読み取る部分のスニペットです。

Dim RawEntList As New List(Of Array)() 

Dim newline() As String 
Dim CurrentAccountName As String 
Dim CurrentAccount As Account 
Dim AccountNameExsists As Boolean 
Dim NewAccount As Account 
Dim NewEntry As Entrey 
Dim WrongFileErrorTrigger As String 

ListOfLoadedAccountNames.Clear() 
'opens the file 
Try 
    Dim sr As New IO.StreamReader(File1Loc) 
    Console.WriteLine("Loading full report please waite") 
    MsgBox("Loading full report may take a while.") 
    'While we have not finished reading the file 
    While (Not sr.EndOfStream) 
     'spliting eatch line up into an array 
     newline = sr.ReadLine.Split(","c) 
     'storring eatch array into a list 
     RawEntList.Add(newline) 
    End While 

そしてもちろん、私はこのようなオブジェクトを移入するための情報を引き出すために、リストを反復処理:

For Each Entr In RawEntList 
    CurrentAccountName = Entr(36) 
    AccountNameExsists = False 
    For Each AccountName In ListOfLoadedAccountNames 
     If CurrentAccountName = AccountName Then 
      AccountNameExsists = True 
     End If 
    Next 

答えて

1

あなただけ

StringName.Replace(ControlChars.Quote, "") 

または

StringName.Replace(Chr(34), "") 
を行うことができます

または

streamReader.readline.split().Replace(Chr(34), "") 
+0

その文字列ではなく、その配列は、分割()がどのように動作するかthatsの文字列。あなたは配列の呼び出しを置き換えることはできません。 私はこのような配列の中でevey value thatsを呼び出すことができたと思います。「ent(0).Replace(Char(34)」、「)」それは50回にわたってilltratedされなければなりません。魔女はすでに150,000回以上動いている別のiltrationの中で動いています。そのポーズはありますが、非常に効率的ではありません。そういうわけで、あなたの上位2つの解決策のうち、3つ目の解決策を考えてみましょう。 – skyzzle

+1

@SkylineGodzilla: '.Split()'を呼び出す前に '.Replace()'を置いてください。後者は配列を返すことがありますが、 'ReadLine()'は 'sr.ReadLine()。Replace(Chr(34)、" ").Split("、 "c)'にはなりません。 –

+0

@WallyModz:OR 'StringName.Replace(" "" "c" ")'。 ;) –

0

分割前の置き換え、readlineの後はどうですか?これは、反復乗算を保存するか、可能であれば、ファイルオブジェクトのReadAllTextメソッドを使用して、ファイル全体の置換を行います(&に十分なメモリがあるようにデータがフォーマットされている場合)。doあなたの置き換え、その後、あなたの配列(超高速!)を構築するためにメモリから行を読んでください。

File.ReadAllText(パス)

関連する問題