Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск строки в StringList, если строк много 
:(
    Опции темы
_RIM_
Дата 23.1.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 26
Регистрация: 7.7.2007
Где: СПб

Репутация: нет
Всего: нет



Здравствуйте.
Есть TStringList - и в нём много строк. Строки состоят из значений:
- дата  дебет  кредит  фирма  назначение  платежа;
Значения эти отделены друг от друга символом #9.

Так вот вопрос: как сделать выборку из множества строк по фирме. То есть задаю я например - ООО "Сокол" и находятся строки только с фирмой ООО "Сокол". Помогите плиз -очень нужно.


PM MAIL ICQ   Вверх
Snowy
Дата 23.1.2008, 16:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Импортировать информациюв БД и сделать выборку.
Иначе придётся проверять на вхождение каждую строку.
PM MAIL   Вверх
_RIM_
Дата 23.1.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 26
Регистрация: 7.7.2007
Где: СПб

Репутация: нет
Всего: нет



Причём если обращаться к элементам списка вот так: L1[0], L1[1] и ставить условие на это, то всё сортируется нормально. Но не по фирме.
Почему?
PM MAIL ICQ   Вверх
Snowy
Дата 23.1.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



А почему должно сортироваться по фирме?
Это ж тебе не таблица, а текст.
Хочешь странную сортировку - пиши свой метод сравнения строк.
PM MAIL   Вверх
lukas
Дата 23.1.2008, 19:02 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



помоему стоит разделить один StringList на несколько, иначе придется изобретать свой велосипед...


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
_RIM_
Дата 24.1.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 26
Регистрация: 7.7.2007
Где: СПб

Репутация: нет
Всего: нет



Могу ли я как-нибудь анализировать каждую строку TStringList'a на предмет присутствия в ней названия фирмы и в соответствии с этим выбирать - занести мне строку в TListView или нет?
PM MAIL ICQ   Вверх
Frees
Дата 24.1.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(_RIM_ @  24.1.2008,  08:56 Найти цитируемый пост)
Могу ли я как-нибудь анализировать каждую строку TStringList'a на предмет присутствия в ней названия фирмы

можеш но для этого тебе нужно пробежать все строки!при больших данных проблема

Функция возвращат найденые строки 
Код

Function GetSubList(FindStr: string; FindList: TStringList): TStringList;
  Var I:Integer ;
begin
  Result := TStringList.Create;
  for I := 0 to FindList.Count - 1 do begin
    if pos(FindStr, FindList.Strings[I]) <> 0 then
      Result.Add(FindList.Strings[I]);
  end;
end;
//на работоспособность не проверял но суть работы фпринципе верна


Это сообщение отредактировал(а) Frees - 24.1.2008, 11:12


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
_RIM_
Дата 24.1.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 26
Регистрация: 7.7.2007
Где: СПб

Репутация: нет
Всего: нет



Всё оказалось проще некуда=) Доступ к элементам TStringList'a осуществляется как: L1[1]-где L1-это список TStringList, а [1] - номер элемента. Сортировку по элементам можно осуществить без поиска строки в отдельной функции. То есть по условию L1[1], L1[2] и т.д. - смотря по какому элементу сортировать. Только не надо забывать про Trim. То есть Trim(L1[1])-чтобы пробелов небыло случайных. И всё прекрасно сортируется!
=) Спасибо ДОБРЫМ людям!!!!
PM MAIL ICQ   Вверх
Snowy
Дата 25.1.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Ндя... Нет слов, одни буквы...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.