![]() |
|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
![]() Чатики тут не устраиваем, пользуемся кнопкой "правка"!
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
|||
|
|||
![]() Цитата:
|
#9
|
|||
|
|||
![]() Цитата:
|
#10
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
cezer (06.06.2013)
|