Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.07.2014, 11:09
djmix djmix вне форума
Прохожий
 
Регистрация: 24.06.2014
Сообщения: 46
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию есть файлик csv

Привет Народ!!! подскажите пожалуйста

есть необходимость если по простому данный файлик приложенный
обработать , для примера вот есть поля. чтобы было понятно

столбик A - время
столбик B - номер пользователя
столбик C - не помню что за ....
столбик D - Название приложения
столбик E - путь к данному приложению
столбик F - Заголовок у приложения

1)мне необходимо отсортировать все строки у которых номер пользователя одинаков. затем

2) подсчитать кол-во всех одинаковых строк по параметру в ячейке столбца D у этого пользователя (на выходе примерно должно получится , пользователь № 16 , что у него 1cv8 - 6 строк, Microsoft Office Outlook - 3 строки, Проводник - 4 строки)


можно ли это реализовать? сможете ли вы мне помочь?
Вложения
Тип файла: zip worktime_site.zip (695 байт, 7 просмотров)
Ответить с цитированием
  #2  
Старый 03.07.2014, 12:20
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Делается это так:
1. Создайте в каталоге, где лежит ваш csv-файл текстовый файл с именем schema.ini, а в него поместите такие строки:
Код HTML:
[worktime_site.csv] ColNameHeader=False Format=Delimited(;)
2. Положите на форму компонент AdoConnection и в строку подключения поместите такой текст:
Код HTML:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties="Text"
В строке подключения укажите для параметра Data Source=D:\ - свой путь к csv-файлу
3. Положите на форму компонент AdoQuery, настройте для него связь с AdoConnection и в текст запроса поместите такой текст:
Код:
select F2,F4,Count(F4) from worktime_site.csv
group by F2,F4
Вот в принципе и все.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 03.07.2014 в 13:10.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
djmix (03.07.2014)
  #3  
Старый 03.07.2014, 14:12
djmix djmix вне форума
Прохожий
 
Регистрация: 24.06.2014
Сообщения: 46
Версия Delphi: Delphi 7
Репутация: 10
Печаль

Цитата:
Сообщение от Страдалецъ
Делается это так:
...................
3. Положите на форму компонент AdoQuery, настройте для него связь с AdoConnection и в текст запроса поместите такой текст:
Код:
select F2,F4,Count(F4) from worktime_site.csv
group by F2,F4
Вот в принципе и все.

А можно посмотреть продолжение? я вроде всё выполнил, как мне получить это визуально то результат((((
Ответить с цитированием
  #4  
Старый 03.07.2014, 21:07
phomm phomm вне форума
Новичок
 
Регистрация: 07.10.2013
Адрес: Тюмень
Сообщения: 50
Версия Delphi: 7/2007/XE+/FPC
Репутация: 22
По умолчанию

Ну можно ещё положить на форму компонент TDataSource, настроить его свойство DataSet равным ADOQuery1 , потом положить на форму компонент TDBGrid и настроить его свойство DataSource равным имени вашего TDataSource (скорее всего DataSource1).
Потом у всех используемых элементов установить свойство Active в true , исправляя возникающие при этом вопросы. Если всё правильно сделали, уже в дизайнере формы увидите данные в гриде.
Ответить с цитированием
Этот пользователь сказал Спасибо phomm за это полезное сообщение:
djmix (04.07.2014)
  #5  
Старый 07.07.2014, 10:14
djmix djmix вне форума
Прохожий
 
Регистрация: 24.06.2014
Сообщения: 46
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от phomm
Если всё правильно сделали, уже в дизайнере формы увидите данные в гриде.


помогите плиз,

есть тот самый столбец F2 (ID пользователя),
хочу сделать отбор по ID пользователя.

как в моём случае сделать запрос SQL?
Ответить с цитированием
  #6  
Старый 07.07.2014, 13:03
phomm phomm вне форума
Новичок
 
Регистрация: 07.10.2013
Адрес: Тюмень
Сообщения: 50
Версия Delphi: 7/2007/XE+/FPC
Репутация: 22
По умолчанию

Задачу фильтрации можно выполнить либо через свойство Filter (и Filtered для включения-выключения фильтрации) самого набора данных (DataSet'a), либо указав предложение WHERE в SQL-запросе и переоткрыв набор данных.
В обоих случаях это можно сделать в виде поля ввода (TEdit) и кнопки, код кнопки будет формировать либо строку Filter либо строку запроса на основании данных из поля ввода.
Код запроса мог бы быть таким (условно, т.к. наименований таблиц и полей у Вас я не знаю)
Код:
'SELECT * FROM Users WHERE ID_User = ' + Edit1.Text;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:44.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025