Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 13:14   #1
nulyjarden
Пользователь
 
Регистрация: 03.04.2010
Сообщений: 26
Восклицание Замена столбцов в StringGrid

Доброго времени суток

Делая программу, столкнулся с проблемой.
На форме есть два StringGrida, нужно что бы столбцы из SG1 записывались в SG2 по ключу.Например в первом есть
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
Нужно что бы по введенному ключу столбцы записывались в SG2.
например ключ "3214", тогда SG2 будет выглядеть так:
3 2 1 4
3 2 1 4
3 2 1 4
3 2 1 4

Вот мой набросок по замене столбцов, но я не могу сделать проверку по
ключу, так как ключи могут быть разными.
Код:
for k:=0 to StrnGrd1.RowCount-1 do
   StrnGrd1.Rows[k].Exchange(0,5);
nulyjarden вне форума Ответить с цитированием
Старый 03.04.2011, 13:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) как задаётся ключ (строка? Массив значений? структура?)
2) ключ при создании контролируется на корректность?!
Ну, что в ключе: a) не может быть повторов! б) все столбцы имеются.


мне кажется, это какой-то известный вид шифрации.. Винижера?

p.s. если до вечера не разберётесь - я помогу с реализацией.
Только ответьте на вопросы, приведённые выше...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2011, 13:25   #3
nulyjarden
Пользователь
 
Регистрация: 03.04.2010
Сообщений: 26
По умолчанию

Ключ задается в Edit, строкой естественно.
Проверки на корректность пока нет, но должен состоять из 7 цифр, повторятся цифры не могут.
Это шифрования методом простой перестановки по ключу.

Цитата:
б) все столбцы имеются.
столбцы могут быть не заполнены до конца.


_____________________________
Не надо плодить подряд несколько коротких сообщений!
Это нарушение правил...
для того, чтобы через минуту/другую дописать сообщение,
не надо создавать ещё один новый пост.
нажимайте на предыдущем кнопку "Правка"
и дописывайте в своё сообщение, что Вы хотели добавить!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 03.04.2011 в 13:40.
nulyjarden вне форума Ответить с цитированием
Старый 03.04.2011, 13:51   #4
nulyjarden
Пользователь
 
Регистрация: 03.04.2010
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
p.s. если до вечера не разберётесь - я помогу с реализацией.
Только ответьте на вопросы, приведённые выше...
Вот появилась идея, я сделал для случая, если ключ может состоять из 7 цифр и в него могу входить только цифры "1234567".
Сравнивать символы ключа с символами строки '1234567'

Код:
begin
  st1:= '1234567';
  for n:= 1 to 7 do begin
    for m:= 1 to 7 do
      if edt1.Text[n]= St1[m] then begin
   for k:=0 to StrnGrd1.RowCount-1 do
   lbl3.Caption:= IntToStr(n);
   lbl4.Caption:= IntToStr(m);
   StrnGrd1.Rows[k].Exchange(m,n);
  End;
  End;
  end;
Идея мне кажется правильной, но я слаб в Delphi и не могу это правильно написать.

Последний раз редактировалось nulyjarden; 03.04.2011 в 14:02. Причина: Доработал код
nulyjarden вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемножение столбцов в StringGrid artemavd Общие вопросы Delphi 6 28.12.2010 12:18
Проблема с шириной столбцов в StringGrid Риндера Компоненты Delphi 13 09.11.2010 18:11
Закрашивание столбцов в Stringgrid ertar Общие вопросы Delphi 3 19.02.2009 00:31
замена столбцов в массиве DeFace Общие вопросы C/C++ 10 10.01.2009 23:16