2

私は関数の一番上にこれを持っています:

string n = "";
string test = "T256=" + n;

ただし、テストは「T256 =」だけです

文字列 n で n = "\"" を実行している場合。

test は "T256=\" ですが、\ は引用を意味しますか?

たとえば、次の場合に空の文字列を取り出すにはどうすればよいですか。

T256="Hello" なので、Hello だけを取り出すことができますが、T256="" がある場合、それはどういう意味ですか? 私のプログラムは空の文字列を飛び越えているので ""

しかし、私はそれを使用する必要があります。

たとえば、私のファイルでは次のようになります。

T256="hello"

T256=""

T256=""

T256="hi"

では、どうすれば2つの T256="" を覚えておくことができますか? 最初の空の T256="" に次の単語を入れない場合は、次のようになります。

T256="hello"

T256="hi"

そして、それはあるべき姿ではありません。次の形式にする必要があります。これは適切な形式です。

T256="hello"

T256=""

T256=""

T256=hello"

だから、これが私のコードで、テキストを取り出していますが、何らかの理由で2つのタグの間にテキストがない場所を取り出していません。

string startTag = "T256=\""; string endTag = "\"";

この 2 つのタグの間にテキストがある場合は削除されますが、このタグの間にテキストがない場合は、タグ間にテキストがある次の行にジャンプします。

"" の間が空の場合でも、 T256="" で任意の行を取得する必要があります

したがって、テキスト ファイルにはスペースまたは "" が表示されます。たとえば、テキスト ファイルは次のようになります。

Hello

""

Hi

""

""

Hello

または、「」でない場合は空のスペースで、テキストを元に戻すと、スペースまたは空の文字列も元に戻す必要があります。

これは、テキストを取り出すコードです。

private void parseText(string originalFile, BackgroundWorker worker)
        {
            FormText("Parsing Text");
            int lineNumber = 0;
            string startTag = "T256=\"";
            string endTag = "\"";
            int index = 0;
            int startTagWidth = startTag.Length;
            int endTagWidth = endTag.Length;
            int fileLength = originalFile.Length;
            w = new StreamWriter(@"d:\testingdeponias.txt");
            while (true)
            {
                if (index > originalFile.LastIndexOf(startTag))
                {
                    break;
                }
                int startTagIndex = originalFile.IndexOf(startTag, index);
                int stringIndex = startTagIndex + startTagWidth;
                index = stringIndex;

                int endTagIndex = originalFile.IndexOf(endTag, index);
                int stringLength = endTagIndex - stringIndex;
                if (stringLength == 0)
                {
                }
                else
                {
                    //worker.ReportProgress(20);
                    string test = originalFile.Substring(stringIndex, stringLength);
                    if (test == "")
                    {
                        MessageBox.Show(test);
                    }

しかし、テストは "" ではありません

4

2 に答える 2

2

"\""を意味し\"ます。

".NET[C#] では、この特定Charの言語には特別な機能があるため、単純に記述することはできません。

したがって、 Char のエスケープ シーケンスを記述する必要があり"ます。

エスケープ シーケンスは で始まり、\その後に実際の Char が続きます。

例:\ isのエスケープ シーケンス\\

したがって、あなたの場合、それ"\"文字列化すると、\""\""

コード :

string n = "\"\"";
string test = "T256=" + n; // same as string test = "T256=\"\""

続きを読む についてEscape Sequence

于 2012-05-24T03:00:08.947 に答える
1

とてもシンプルです。

単にテストする

  • 引用符を文字列化するには: " -> エスケープ文字付き \" -> "\"" を文字列化する
  • 2 つの引用符を文字列化するには: "" -> エスケープ文字 \"\" を使用 -> "\"\"" を文字列化する

string needle = "256TT=\"\"";

これは 256TT="" に相当します

プログラムがそれを見つけたときはいつでも、単にメッセージ ボックスを印刷するか、やりたいことを何でも印刷します。テキスト ファイルにスペースを入れるか、\"\" のように 2 つの引用符を入れます。

そしてそれはそれです。

于 2012-05-24T02:14:09.343 に答える