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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение строк memo и их сложение 
:(
    Опции темы
cezer987
Дата 12.5.2013, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем добрый вечер. подскажите пожалуйста, есть memo в него загружен текст: 

User, 192.168.0.103, 18:39:15, 3642, 1, 2, 0, 0
User, 192.168.0.103, 18:39:15, 3642, 3, 4, 0, 0
Admin, 192.168.0.103, 18:39:15, 3642, 2, 6, 0, 0
Admin, 192.168.0.103, 18:39:15, 3642, 7, 8, 0, 0

Нужно разбить каждую строку на несколько частей. И самое главное при считывании строк Если Имя повторяется то прибавлять 5 и 6й столбец, одного и того же имени.

теперь на примере: 
Имеется 4е строки которые описаны выше, в первых двух имя повторяется это значит что 5 и 6й столбец прибавляем между собой label5.caption:=1+3 и label6.caption:=2+4. Сколько строк за ранее не известно каждый раз прибавляются и имена могут чередоваться.

Как разбить строки нашёл, а как сделать так чтоб он по строчно разбивал складывал и тд и тп ума не приложу.
PM   Вверх
DarkProg
Дата 12.5.2013, 18:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Что-то я не совсем понял задачу.

Опишите выходную последовательность которая должна получаться. Для данного примера.

Этот ответ добавлен с нового Винграда - http://vingrad.com
  Вверх
cezer987
Дата 12.5.2013, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(DarkProg @ 12.5.2013,  18:21)
Что-то я не совсем понял задачу.

Опишите выходную последовательность которая должна получаться. Для данного примера.

Этот ответ добавлен с нового Винграда - http://vingrad.com


Сканируем memo по строчно
в первой строке ищем значение до первой запятой User Admin или другие пользователи....
вообщем суть такая в мемо текст нужно будет запихать строки по столбцам в грид... в memo очень много пользователей и они повторяются и чередуются нужно для каждого пользователя вывести общее число сложив 5 и 6 столбец...
упрощённый вариант 

User, 1, 2
User, 1, 5
Admin, 1, 8
Vasya, 6, 9
Admin, 9, 5
Vasya, 10, 5

итог:
User | 2 | 7
Admin | 10 | 13
Vasya | 16 | 14

Это сообщение отредактировал(а) Poseidon - 12.5.2013, 21:44
PM   Вверх
Poseidon
Дата 12.5.2013, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

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



cezer987, что тебе нужно - понятно. Теперь хотелось бы разобраться, что именно у тебя не получается? Ты ведь не думаешь, что тут все сидят и ждут кому бы это написать код с 0, правда?


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
cezer987
Дата 12.5.2013, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Poseidon @ 12.5.2013,  21:46)
cezer987, что тебе нужно - понятно. Теперь хотелось бы разобраться, что именно у тебя не получается? Ты ведь не думаешь, что тут все сидят и ждут кому бы это написать код с 0, правда?

Понял исправляюсь) Вот код уже готовый осталось только сделать так чтоб данные заносились в dbgrid но не как не выходит(((
Код

procedure TForm1.sButton2Click(Sender: TObject);
var
 q,w,e:TStrings;
 i: integer;
begin
 q:= TStringList.Create;
 w:= TStringList.Create;
 e:= TStringList.Create;
with text.Lines do
 for i:=0 to Count-1 do
  begin
   q.DelimitedText:= Strings[i];
   if q.count>7 then w.values[q[0]]:= IntToStr(StrToIntDef(w.values[q[0]],0)+ StrToInt(q[6]));
   if q.count>8 then e.values[q[0]]:= IntToStr(StrToIntDef(e.values[q[0]],0)+ StrToInt(q[7]));
  end;
 Label1.Caption:=w.Text;
 Label2.Caption:=e.Text;
 sdbgrid1.Columns[2].PickList.text:=(w.Text);
 sdbgrid1.Refresh;
 q.Free;
 w.Free;
 e.Free;
 end;


Сейчас он выводит данные вот так

label1.caption:=(User1=Сложанные цифры 7й колонки пользователя User1)
Label2.caption:=(User1=Сложенные цифры 8й колонки пользователя user1)

Надо как то прикруть к grid чтоб получалось вот так:
Имя    |                                      Цифры 1                                                |                                           Цифры 2                                          |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
User1 | (User1=Сложанные цифры 7й колонки пользователя User1) | (User1=Сложенные цифры 8й колонки пользователя user1) |
Admin | (Admin=Сложанные цифры 7й колонки пользователя User1) | (Admin=Сложенные цифры 8й колонки пользователя user1) |
Root   |   (Root=Сложанные цифры 7й колонки пользователя User1)   | (Root=Сложенные цифры 8й колонки пользователя user1) |

Вот без излишеств:

User   | 2   | 7   | 
Admin | 10 | 13 |
Root   | 16 | 14 |

Это сообщение отредактировал(а) cezer987 - 12.5.2013, 22:00
PM   Вверх
Poseidon
Дата 12.5.2013, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

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



Цитата(cezer987 @  12.5.2013,  21:56 Найти цитируемый пост)
Вот код уже готовый осталось только сделать так чтоб данные заносились в dbgrid но не как не выходит(((
Что бы данные отобразились в DBGrid, нужно их занести в базу данных, т.к. DBGrid предназначен для отображение таблицы из базы. Если у тебя вообще базой данных не пахнет, то используй StringGrid.

Если все же ты работаешь с базой, то почитай информацию про запросы Insert и Update и про компоненты *Query

Если базы нет, то почитай про StringGrid и свойство Cells



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
northener
Дата 13.5.2013, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(cezer987 @  12.5.2013,  21:56 Найти цитируемый пост)
 Вот код уже готовый осталось только сделать 

Осталось только "начать и кончить"!


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
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.0807 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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