![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
На вашем примере можно показывать как делать ненадо. У вас задача - ведение домашней бухгалтерии, пускай она малюсенькая, но запросы-то к ней вы хотите делать не малюсенькие. Так и берите инструмент для этого предназначеный, а то создали себе трудности, а теперь героически их преодолеваете. Возьмите акцес, сделайте в нем табличку и делайте к ней какие хотите запросы.
|