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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2017, 23:15   #1
Quillhella
Новичок
Джуниор
 
Регистрация: 19.06.2017
Сообщений: 1
Сообщение Распределение символов из Edit/Label в StringGrid

Всем доброго времени суток! Имеется следующая проблема: я создала программу, которая переводит код из десятичной системы счисления в шестнадцатеричную (Юзер вводит код в Edit и уже готовое значение появляется в Lable).

Приведу такой пример: вам нужно перевести код, допустим, 00 326 824 54 (без пробелов, естественно). После нажатия на Button вы видите, что код трансформировался в 1F2B1D6. На этом этапе у меня все работает хорошо.

Но следующая задача заключается в том, чтобы перевести полученный код по 2 символа с конца в 4 ячейки уже имеющейся таблицы (StringGrid). То есть, необходимо получить в 1 ряду записанные символы

| 01 | F2 | B1 | D6 |

(давайте представим, что это 4 ячейки 1 ряда). При чем важно, чтобы в каждой клеточке имелось по 2 символа!

Нет разницы, будет код в шестнадцатеричной системе счисления появляться в Lable или Edit. Важен именно результат в таблице. Также необходимо, чтобы была возможность выводить в таблицу не только код, показанный в примере, а и любой другой, полученный после перевода из десятеричной системы счисления.

Буду очень благодарна, если Вы подскажете решение данной задачи.
Quillhella вне форума Ответить с цитированием
Старый 20.06.2017, 09:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Так?
Код:
StrokaGrida := 0; // выводим результат в первую строку грида
if odd(Length(myHexString)) then myHexString := '0'+myHexString;
i:=1;
while i<(Length(myHexString)-1) do begin
  StringGrid1.Cells[(i-1) div 2, StrokaGrida] := Copy(myHexString,i,2);
  inc(i,2)
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2017, 09:25   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
s:='1F2b1d6'; // итак есть такая вот строка
for j:=length(s) div 2 down 0 do begin
  r:=copy(s, j*2, 2); // а теперь "достали" из нее ДВА нужных нам символа
  StringGrid.Cells[ м-м-м а какой нам нужен столбец-то]:=r;
end;
// да и что делать с теми колонками которым "не хватит" символов
Код:
s:='1F2b1d6'; // итак есть такая вот строка 
{нам надо заполнить 5 столбцов }
s:='          ' + s; //дополняем строку слева так  даже если в самой строке нет ничего и ТЕМ что мы хотим видеть в "пустых" ячейках
s:=Right(s, 5*2); // теперь s ='   1F2b1d6' и будет иметь ровно столько знаков сколько нам нужно перенести в колонки
for j:=0 to StringGrid.ColCount-1 do begin
   r:=copy(s, 1+j*2, 2); // берем символы в нужных позициях  
!!!
//  колонки таблицы нумеруются с 0 а  позиции в строке с 1 !!!
!!!
   r:=trim(r); // мы на самом деле совсем не хотим видеть в таблице пробелы
   StringGrid.Cells[x, j]:=r; // ну все можно заполнять
end;
http://www.delphibasics.ru/StringOfChar.php
Код:
s:=stringofchar(' ', stringgrid.colcount *2) +s; // чтобы хватило на ВСЕ колонки
s:=Right(s, Stringgrid.colcount*2);
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.06.2017 в 09:37.
evg_m вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с компонентами Edit и Label Sallivan_Bidl Помощь студентам 8 19.08.2014 18:11
Динамическая Индикация на Label или Edit ддимочка C++ Builder 4 08.09.2013 19:25
Удаление определенного количества символов из компонента label Sandysman Мультимедиа в Delphi 4 22.03.2012 14:46
Ввести 3 числа ( в 3 компонента Edit ) и расположить их по возрастанию в компоненте Label Сароникус Помощь студентам 0 01.10.2011 22:31
Label напротив Edit pahanzona Общие вопросы Delphi 9 26.02.2011 10:40