Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2012, 13:26   #1
julettad
Новичок
Джуниор
 
Регистрация: 17.05.2012
Сообщений: 1
По умолчанию Подсчитать количество запросов в log файле

Необходимо проанализаровать и подсчитать сколько запросов было сделано в день.
Например:

Дата Запросы
25.04.2002 - 12
26.04.2002 - 10
27.04.2002 - 5

У меня какой то бред получается(
Код:
#include <stdio.h>
#include <string.h>
#include <locale.h>

main()
{
 setlocale(LC_ALL,"Russian");
      FILE *log, *out;
      int a[256],c[100][100],j,b,i;
      char ns='\n';
      char s[11],s1[11], l,k=0;
      log = fopen ("wslog.txt", "r");
      out = fopen ("output.txt", "w");      
      j=0;
      b=0;
      fprintf (out, "Дата     Количество запросов");    
      while (!feof(log))
      {
            fgets (s, 11, log);
            while( k!=ns)
            {
                   k=fgetc(log);
                   }
            k=154;
            if ( 0 == strcmp(s,s1) )
      a[i]++;
      fprintf(out,"%c            %d\n",i,a[i]);
      }  
}
Вложения
Тип файла: txt wslog.txt (408.2 Кб, 144 просмотров)
julettad вне форума Ответить с цитированием
Старый 17.05.2012, 15:00   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

julettad

Если ты - не джедай, не используй C++ для парсинга. Что угодно, только не C++.

Код:
	class Program
	{
		static void Main(string[] args)
		{
			var rxDate = new Regex(@"^([^\^]+)\^", RegexOptions.Compiled);
			var arr = new SortedDictionary<DateTime, int>();

			using (var mmf = MemoryMappedFile.CreateFromFile("wslog.txt"))
			using (var sr = new StreamReader(mmf.CreateViewStream(), Encoding.GetEncoding(1251)))
			{
				while (true)
				{
					var l = sr.ReadLine();
					if (sr.EndOfStream)
						break;
					var dt = DateTime.Parse(rxDate.Match(l).Groups[1].Value);
					if (arr.ContainsKey(dt))
						++arr[dt];
					else
						arr.Add(dt, 1);
				}
			}

			foreach (var i in arr)
				Console.WriteLine("{0:d} - {1}", i.Key, i.Value);
		}
	}
Rififi вне форума Ответить с цитированием
Старый 17.05.2012, 15:01   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

"^([^\^]+)\^"

А чё, няшный регех получился... :D
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В текстовом файле подсчитать количество непустых строк. Программа на с++ Ann_93 Помощь студентам 1 28.04.2012 09:20
Задана последовательность чисел в формате:сначала количество цифр в числе, потом - цифры числа. Подсчитать количество. Arn1 Помощь студентам 4 03.10.2011 20:03
подсчитать количество элементов в файле целых чисел Aimet Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2011 20:11
Подсчитать количество слов и количество букв MDSIQ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.11.2010 16:57
Количество асинхронных запросов chnry JavaScript, Ajax 3 05.04.2010 10:57