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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2012, 18:59   #1
RevenGGe
Пользователь
 
Аватар для RevenGGe
 
Регистрация: 03.06.2012
Сообщений: 37
По умолчанию Не работает операция

В начало строки должно добавлять ноль в случае, если число не кратное 4, но у меня не работает. Подскажите ошибку, пожалуйста.

Код:
While Length(Sx) mod 4<>0 do
    Sx:='0'+Sx;
RevenGGe вне форума Ответить с цитированием
Старый 16.09.2012, 19:47   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Отлично, а при чём тут длина строки?
Вы на примере можете показать что конкретно хотите?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.09.2012, 20:03   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
While (Length(Sx) mod 4)<>0 do
Так надежнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.09.2012, 20:09   #4
RevenGGe
Пользователь
 
Аватар для RevenGGe
 
Регистрация: 03.06.2012
Сообщений: 37
По умолчанию

Stilet, так тоже пробовал. Не помогает.

Hacker19_90, длинна строки, потому что мне нужно перевести с 2 в 16 систему. Это одна из операций, которая прибавляет ноль в начало строки, если длинна строки не кратная 4.
По моей логике оно должно работать, но увы. Также пробовал через insert и тоже не работает.
RevenGGe вне форума Ответить с цитированием
Старый 16.09.2012, 20:12   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это одна из операций, которая прибавляет ноль в начало строки
Эту глупость тебе кто сказал?
Ноль дорисовывается не для этого.
Цитата:
так тоже пробовал. Не помогает.
А пошаговочку?
Показывай код.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.09.2012, 20:52   #6
RevenGGe
Пользователь
 
Аватар для RevenGGe
 
Регистрация: 03.06.2012
Сообщений: 37
По умолчанию

Код:
function To16(Sx:string):string;
   var j:byte;
       St1,St:string;
    begin
     St:='';
       While Length(Sx) mod 4<>0 do
         Sx:='0'+Sx;



   For j:=0 to Length(Sx) div 4 -1  do
    begin
      St1:=Copy(k,4*j+1,4);
           if St1='0000' then St1:='0'
      else if St1='0001' then St1:='1'
      else if St1='0010' then St1:='2'
      else if St1='0011' then St1:='3'
      else if St1='0100' then St1:='4'
      else if St1='0101' then St1:='5'
      else if St1='0110' then St1:='6'
      else if St1='0111' then St1:='7'
      else if St1='1000' then St1:='8'
      else if St1='1001' then St1:='9'
      else if St1='1010' then St1:='A'
      else if St1='1011' then St1:='B'
      else if St1='1100' then St1:='C'
      else if St1='1101' then St1:='D'
      else if St1='1110' then St1:='E'
      else if St1='1111' then St1:='F';
      St:=St+St1;
      end;
   result:=St;
   end;
RevenGGe вне форума Ответить с цитированием
Старый 16.09.2012, 20:58   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
St1:=Copy(k,4*j+1,4);
что такое k?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.09.2012, 21:02   #8
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А Sx как передается в функцию? Где этот кусок кода? Может, в нем и заключаются грабли?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 16.09.2012, 21:03   #9
RevenGGe
Пользователь
 
Аватар для RevenGGe
 
Регистрация: 03.06.2012
Сообщений: 37
По умолчанию

Точно! спасибо Hacker19_90. Случайно перенес глобальную переменную. Спасибо большое за помощь.
RevenGGe вне форума Ответить с цитированием
Старый 16.09.2012, 21:06   #10
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
что такое k?
Выскажу предположение, что это нечто глобальное
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает операция "слияния" в сетях Петри Ksy Общие вопросы C/C++ 0 08.12.2011 02:22
Операция в Газе Роман Радер Свободное общение 2 31.12.2008 17:03
Операция Ы SASHA50 Microsoft Office Excel 10 25.04.2008 12:38
Операция сдвига? SkyDreamer Общие вопросы C/C++ 3 10.10.2007 08:20