0

パーセンテージを計算し、次の形式で結果を返す統計を見つけたい: WX GSA 検索 % = GSA の発生数 / GSA の発生数 + 検索の発生数 + ADVSearch の発生数 * 100 つまり、この場合は 3 / 3 + 2 + のようになります。 2 * 100 = 42.8

すべての検索の発生を与えるコードを試しました:

私のコードはここにあります:

 class Program
{
    static void Main()
    {
        System.IO.StreamReader myFile =
        new System.IO.StreamReader(@"C:\Users\karansha\Desktop\sample log.txt");
        string myString = myFile.ReadToEnd();
        Console.WriteLine(TextTool.CountStringOccurrences(myString, "WX Search"));   // WX Rule Based Search.
        Console.WriteLine(TextTool.CountStringOccurrences(myString, "WX GSA Search"));  // WX GSA Search.
        Console.WriteLine(TextTool.CountStringOccurrences(myString, "WX ADVSearch"));   //WX Form Based Search.
        // keep screen from going away
        // when run from VS.NET
        Console.ReadLine();
    }
}
public static class TextTool
{
    public static int CountStringOccurrences(string text, string pattern)
    {
        int count = 0;
        int i = 0;
        while ((i = text.IndexOf(pattern, i)) != -1)
        {
            i += pattern.Length;
            count++;
        }
        return count;
    }
}
4

2 に答える 2

0

私はその質問を本当に理解していません。数式を計算してコンソール画面に表示するだけですか?これを意味する場合は、ここに必要なコードがあります。

static void Main()
{
    System.IO.StreamReader myFile =
    new System.IO.StreamReader(@"C:\Users\karansha\Desktop\sample log.txt");
    string myString = myFile.ReadToEnd();
    int wxSearchCount = TextTool.CountStringOccurrences(myString, "WX Search");   // WX Rule Based Search.
    int wxGsaSearchCount = TextTool.CountStringOccurrences(myString, "WX GSA Search");  // WX GSA Search.
    int wxAdvSearchCount = TextTool.CountStringOccurrences(myString, "WX ADVSearch");   //WX Form Based Search.

            double result = Convert.ToDouble(wxGsaSearchCount * 100) / Convert.ToDouble((wxGsaSearchCount + wxSearchCount + wxAdvSearchCount));

            Console.WriteLine("WX Search: {0}\nWX GSA Search: {1}\nWX ADVSearch: {2}\nResult: {3}",
                                wxSearchCount, wxGsaSearchCount, wxAdvSearchCount, result.ToString("0.00"));

    Console.ReadLine();
}
于 2013-03-05T07:26:05.743 に答える
0

String.Formatメソッドを使用して、.NET で文字列をフォーマットできます。

int score = 50;
string formattedString = String.Format("My Score : {0}", score);
Console.WriteLine(formattedString); 
//My Score : 50
于 2013-03-05T07:09:39.077 に答える