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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.05.2009, 11:34
insidefuture insidefuture вне форума
Прохожий
 
Регистрация: 04.05.2009
Сообщения: 5
Репутация: 10
Стрелка Как подсчитать слова ?

Доброе время суток,

Вот делаю такой мини подсчет домашних расходов. Из stringgrid компонента в текстовой вайл запивываю информацию:
A[i].preke - Название продукта
A[i].kaina - Цена того продукта
A[i].parda - Магазин в котором покупал продукт.

Теперь с этого текстового файла хочу подсчитать:
1. Сколько вообще имеется товаров купленно
2. Какой товар самое больше раз был куплин
3. Какая и какого товара цена была самая большая и самая маленькая

Как мне вот это реализовать ?

Спасибо большое за помощь.

Последний раз редактировалось insidefuture, 15.05.2009 в 11:40.
Ответить с цитированием
  #2  
Старый 15.05.2009, 11:58
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Подсчитать слова и проанализировать текст - разные вещи.
Чтоб подсчитать слова (и разбить текст на слова) можно использовать это (как вариант) :
Код:
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  
Старый 15.05.2009, 12:44
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

На вашем примере можно показывать как делать ненадо. У вас задача - ведение домашней бухгалтерии, пускай она малюсенькая, но запросы-то к ней вы хотите делать не малюсенькие. Так и берите инструмент для этого предназначеный, а то создали себе трудности, а теперь героически их преодолеваете. Возьмите акцес, сделайте в нем табличку и делайте к ней какие хотите запросы.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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