![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем добрый день. Пишу программу для логов Usergate 2.8 Нужна ваша помощь. Имеется Код любезно предоставленный пользователем Страдалецъ:
Что уже готово и имеется: 1. На форму добавляем AdoQuery. 2. В ConnectionString пишем: Provider=Microsoft.Jet.OLEDB.4.0ata Source=J:\;Extended Properties="Text;HDR=No";Persist Security Info=False Только вместо J:\ указываем путь к нашему файлу. 2.1. В SQL пишем запрос: select F1,F2,F3,F4,Sum(F7) as F7, Sum(F8) as F8 from Test1#txt group by F1,F2,F3,F4 в место Test1#txt пишем имя своего файла. На форму добавляем DBGrid,DataSource. Связываем все это. Готово. ------------------------------------------------------------------------- Проблема в следующем: ADOquery не читает файлы кроме txt и mdb. Так же возможны проблемы с именем файла если в имени имеется тире - тоже не читает. Сделал в обход: ------------------------------------------------------------------------- Код:
глобально
var
d,p,b: string;
procedure TForm1.FormCreate(Sender: TObject);
begin
d:=FormatDateTime('dd-mm-yyyy-',now);
b:=d+'.txt'
memo1.Lines.LoadFromFile('\\192.168.1.87\Log\'+b);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
memo1.Lines.LoadFromFile('\\192.168.1.87\Log\'+b);
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
memo1.Lines.SaveToFile('Base\'+b);
adoquery1.Active:=true;
end;Вопросов несколько начну с того что: Как сделать чтоб можно было логи брать за определённый период допустим: 10.05.2013 по 14.05.2013 чтоб он все это выводил просуммированные столбцы №7 и 8 за период. Название лог файлов: 00-00-00-UserGate.lgs Внутренность файлов: User1, 192.168.0.1, 192.168.0.1, 05.11.13, 18:39:15, 3642, 10, 37, 0, 0 User8, 192.168.0.8, 192.168.0.8, 05.11.13, 18:39:15, 0987, 38, 75, 0, 0 User2, 192.168.0.2, 192.168.0.2, 05.11.13, 18:39:15, 5432, 8, 754, 0, 0 User5, 192.168.0.5, 192.168.0.5, 05.11.13, 18:39:15, 1432, 24, 3754, 0, 0 User7, 192.168.0.7, 192.168.0.7, 05.11.13, 18:39:15, 2436, 1, 77, 0, 0 User1, 192.168.0.1, 192.168.0.1, 05.11.13, 18:39:15, 3642, 10, 37, 0, 0 User8, 192.168.0.8, 192.168.0.8, 05.11.13, 18:39:15, 0987, 38, 75, 0, 0 User2, 192.168.0.2, 192.168.0.2, 05.11.13, 18:39:15, 5432, 8, 754, 0, 0 7 и 8 колонка это данные в байтах. Второй вопрос: Как сделать конвертацию например несколько radiobutton 1 Байты 2 килобайты 3 мегабайты 4 гигабайты нажимая на каждый в dbgrid меняются цифры в 7 и 8 колонке. Третий вопрос: Сортировка данных. нажимаешь например на столбец 7 он сортирует по убыванию или по возрастанию. если нажимаешь на столбец 1 он сортирует по алфавиту в нормальном порядке либо в обратном порядке. -------------------------------------------------------------------------- А в ответ Тишина))) Последний раз редактировалось M.A.D.M.A.N., 04.06.2013 в 21:14. |
|
#2
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
cezer (06.06.2013)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Цитата:
осталось сделать следующее: Суммирование при выборе интервала дат, правильная* сортировка колонок, radiobutton килобайты мегабайты гигабайты ну и тоже не мало важное это: если меняется в DBgrid данные у кого то пользователя то рядом допустим в новую колонку добавлять что пользователь активен если не активен то пусто.... Потихоньку продвигаюсь делаю что умею и могу... Если есть предложения или готовый код буду с радостью добавлять в проект... Всем спасибо кто помог и кто поможет) ![]() Последний раз редактировалось M.A.D.M.A.N., 04.06.2013 в 21:14. |
|
#4
|
||||
|
||||
|
К сожалению, ваш код у меня не работает, вылезают страшные ошибки, даже "крашится" система, аж салют из трёх пальцев не помогает, поэтому помочь с ним, увы, не смогу (ага, а вот пусть тот кто вам это посоветовал и парится
). Могу предложить лишь прошлые наработки, под другие ваши темы, там идёт общее суммирование всех записей по пользователям, но сейчас думаю над выборкой по дате, додумаюсь - покажу. |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
cezer (06.06.2013)
| ||
|
#5
|
|||
|
|||
|
Цитата:
Цитата:
1.05.2013-UserGate.lgs 2.05.2013-UserGate.lgs 3.05.2013-UserGate.lgs и так далее.... уважаемый Alegun есть идеи? на счет выборке?? Последний раз редактировалось M.A.D.M.A.N., 04.06.2013 в 21:14. |
|
#6
|
||||
|
||||
|
Цитата:
![]() З.Ы. У меня такое получилось Код:
procedure TForm1.Button3Click(Sender: TObject);
var
sl,sv:TStrings;
i: integer;
begin
sl:= TStringList.Create;
sv:= TStringList.Create;
sl.Assign(Memo1.Lines);
Memo1.Clear;
for i:=0 to sl.Count-1 do
begin
sv.Text:= StringReplace(sl.Strings[i],',',#10,[rfReplaceAll]);
if DaysBetween(StrToDate('15.05.13'), StrToDate('23.06.13')) >=
DaysBetween(StrToDate('15.05.13'), StrToDate(sv.Strings[3])) then
Memo1.Lines.Add(sl.Strings[i]);
end;
sv.Free;
sl.Free;
end;Последний раз редактировалось Alegun, 04.06.2013 в 21:27. |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
cezer (04.06.2013)
| ||
|
#7
|
||||
|
||||
|
Чатики тут не устраиваем, пользуемся кнопкой "правка"!
|
|
#8
|
|||
|
|||
|
Цитата:
|
|
#9
|
|||
|
|||
|
Цитата:
|
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
cezer (06.06.2013)
| ||