![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброе время суток,
Вот делаю такой мини подсчет домашних расходов. Из stringgrid компонента в текстовой вайл запивываю информацию: A[i].preke - Название продукта A[i].kaina - Цена того продукта A[i].parda - Магазин в котором покупал продукт. Теперь с этого текстового файла хочу подсчитать: 1. Сколько вообще имеется товаров купленно 2. Какой товар самое больше раз был куплин 3. Какая и какого товара цена была самая большая и самая маленькая Как мне вот это реализовать ? Спасибо большое за помощь. Последний раз редактировалось insidefuture, 15.05.2009 в 11:40. |
#2
|
|||
|
|||
![]() Подсчитать слова и проанализировать текст - разные вещи.
Чтоб подсчитать слова (и разбить текст на слова) можно использовать это (как вариант) : Код:
function Get_CountWords_In_String(UnChar : TSetChars; Sx : string) : integer; //Определить кол-во слов в строке var InWord : byte; i : integer; begin Result:=0; if length(Sx)>0 then begin InWord := 0; i:=0; while i<length(Sx) do begin i:=i+1; if not (Sx[i] in UnChar) then begin //этот символ - НЕ разделитель if InWord<=0 then Result:=Result+1; //переход на начало слова InWord:=1; //Мы внутри слова end else begin //этот символ - разделитель InWord:=0; //Мы снаружи слова end; end; end; end; function Get_Word_From_String(UnChar : TSetChars; Sx : string; NumWord : integer) : string; //Получить слово из строки по номеру var InWord : byte; NumWordCur, i : integer; begin Result:=''; if length(Sx)>0 then begin if NumWord>0 then begin InWord := 0; NumWordCur:=0; i:=0; while i<length(Sx) do begin i:=i+1; if not (Sx[i] in UnChar) then begin //этот символ - НЕ разделитель if InWord<=0 then NumWordCur:=NumWordCur+1; //мы - на начале слова InWord:=1; //Мы внутри слова if NumWordCur=NumWord then begin //Это - наше слово Result:=Result+Sx[i]; //и мы его выдираем из строки end; end else begin //этот символ - разделитель InWord:=0; //Мы снаружи слова if NumWordCur=NumWord then begin //Это было - наше слово i:=length(Sx)+1; //поэтому, выходим из цикла и функции end; end; end; end; end; end; А чтоб проанализировать текст - лучше всего регулярные выражения ... |
#3
|
||||
|
||||
![]() На вашем примере можно показывать как делать ненадо. У вас задача - ведение домашней бухгалтерии, пускай она малюсенькая, но запросы-то к ней вы хотите делать не малюсенькие. Так и берите инструмент для этого предназначеный, а то создали себе трудности, а теперь героически их преодолеваете. Возьмите акцес, сделайте в нем табличку и делайте к ней какие хотите запросы.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |