0

小さなC#アプリを作成していますが、小さな問題があります。

プレーンテキストの.xmlがあり、4行目だけが必要です。

string filename = "file.xml";
if (File.Exists(filename))
{
    string[] lines = File.ReadAllLines(filename);
    textBox1.Text += (lines[4]);
}

今まですべてが順調でしたが、私の唯一の問題は、4行目からいくつかの単語と記号を削除する必要があることです。

私の悪い言葉と記号:

word 1 
: 
' 
, 

私はグーグルを探していましたが、C#の何も見つかりませんでした。VBのコードを見つけましたが、私はこれが初めてで、変換して機能させる方法が本当にわかりません。

 Dim crlf$, badChars$, badChars2$, i, tt$
  crlf$ = Chr(13) & Chr(10)
  badChars$ = "\/:*?""<>|"           ' For Testing, no spaces
  badChars2$ = "\ / : * ? "" < > |"  ' For Display, has spaces

  ' Check for bad characters
For i = 1 To Len(tt$)
  If InStr(badChars$, Mid(tt$, i, 1)) <> 0 Then
    temp = MsgBox("A directory name may not contain any of the following" _
           & crlf$ & crlf$ & "     " & badChars2$, _
           vbOKOnly + vbCritical, _
           "Bad Characters")
    Exit Sub
  End If
Next i

ありがとうございました。

修繕 :)

 textBox1.Text += (lines[4]
              .Replace("Word 1", String.Empty)
            .Replace(":", String.Empty)
            .Replace("'", String.Empty)
            .Replace(",", String.Empty));
4

3 に答える 3

2

それらを何も置き換えることができません:

textBox1.Text += lines[4].Replace("word 1 ", string.Empty)
                         .Replace(":", string.Empty)
                         .Replace("'", string.Empty)
                         .Replace(",", string.Empty);

または、削除する式の配列を作成し、それらをすべて何も置き換えないでください。

string[] wordsToBeRemoved = { "word 1", ":", "'", "," };

string result = lines[4];
foreach (string toBeRemoved in wordsToBeRemoved) {
    result = result.Replace(toBeRemoved, string.Empty);
}
textBox1.Text += result;
于 2013-03-24T10:25:02.077 に答える
1

String.Replaceそれらを何もないものに置き換えるために使用できます。

textBox1.Text += (lines[4]
            .Replace("Word 1", String.Empty)
            .Replace(":", String.Empty)
            .Replace("'", String.Empty)
            .Replace(",", String.Empty));
于 2013-03-24T10:24:07.450 に答える
0

StringBuilderみんなが良い解決策を与えました、私はただ別の速くて便利な(拡張メソッド構文を使ってそしてparams値として)解決策を追加したいです

public static string RemoveStrings(this string str, params string[] strsToRemove)
{
    var builder = new StringBuilder(str);
    strsToRemove.ToList().ForEach(v => builder.Replace(v, ""));
    return builder.ToString();
}

今、あなたはできる

string[] lines = File.ReadAllLines(filename);
textBox1.Text += lines[4].RemoveStrings("word 1", ":", "'", ",");
于 2013-03-24T10:31:02.333 に答える