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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2013, 06:37   #11
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Это точно никак не связано с Default. Просто число 10000000000 > MaxInt=2147483647. В варианте 2 вы рассматриваете edit1 как строку (неограниченный массив символов (в вашем случае бит)), а в варианте 1 сразу делаете StrToInt(Edit1.text).
Вместо StrToInt(Edit1.text)=0 используйте not Correct(edit1.text)
Код:
function Correct (AStr: string): Boolean;
var
  i: Integer;
  f: Boolean;
begin
  Result := False;
  if AStr = '' then Exit;
  for i := 1 to Length(AStr) do begin
    if not (AStr[i] in ['0', '1']) then Exit;
    if AStr[i] = '1' then Result := True;
  end;
end;

Последний раз редактировалось Sibedir; 15.03.2013 в 06:41.
Sibedir вне форума Ответить с цитированием
Старый 15.03.2013, 19:46   #12
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

а обязательно ли писать целую функцию для простой проверки на 0? я решил проблему проверив символы в цикле, если в строке нет 1, то выход, ну цикл тут не стал писать, но суть объяснил
from dark to light)

Последний раз редактировалось Алексей_2012; 15.03.2013 в 19:50.
Алексей_2012 вне форума Ответить с цитированием
Старый 15.03.2013, 21:40   #13
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Почему-то не получается отделить из общего кода, с конца, столько символов, сколько определилось выборкой case. В одну строковую переменную скопировать beater символов с конца, а то что осталось записать в edit1. Ругается на цикл, а именно на эту строчку: s[i]:=singular[i];

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  loadfrombit,singular,s: string;
  i: integer;
  beater:Byte;
begin
   case Length(Edit1.Text) of
           1:beater:=1;
        2..3:beater:=2;
        4..7:beater:=3;
       8..15:beater:=4;
      16..31:beater:=5;
      32..63:beater:=6;
     64..127:beater:=7;
    128..254:beater:=8;
   end;
   Loadfrombit:=Copy(Edit1.Text,Length(Edit1.Text)-beater+1,Length(Edit1.Text));
   singular:=Edit1.Text;
   for i:=1 to Length(singular)-length(loadfrombit) do
   s[i]:=singular[i];
   Edit1.Text:=s;
end;
from dark to light)

Последний раз редактировалось Алексей_2012; 15.03.2013 в 21:42.
Алексей_2012 вне форума Ответить с цитированием
Старый 15.03.2013, 21:53   #14
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

я думаю тоже самое можно сделать и так(или я не прав?), но ругается на delete

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  loadfrombit: string;
  singular: string[254];
  s: string[254];
  i: integer;
  beater:Byte;
begin
   case Length(Edit1.Text) of
           1:beater:=1;
        2..3:beater:=2;
        4..7:beater:=3;
       8..15:beater:=4;
      16..31:beater:=5;
      32..63:beater:=6;
     64..127:beater:=7;
    128..254:beater:=8;
   end;
   Loadfrombit:=Copy(Edit1.Text,Length(Edit1.Text)-beater+1,Length(Edit1.Text));
   singular:=Edit1.Text;
  Edit1.Text:=Delete(singular,(Length(singular)-beater+1),beater);
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.03.2013, 21:56   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цикл зачем?
Код:
 Edit1.Text:=Copy(Edit1.Text,1,Length(Edit1.Text)-beater);
Цитата:
s[i]:=singular[i];
Правильно делает, что ругается. Что в s изначально было и какая длина того, что там было?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.03.2013, 00:33   #16
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Спасибо, сам все сделал, delete-это же процедура а не функция, а в s было так записано s:=''; но у меня еще одна проблема (только разделываемся всем форумом с одной, так появляется другая), в общем case отработал правильно, но если внимательно посмотреть, то в первой радиокнопке вычисляется избыточность, а вторая ищет по найденной избыточности одну ошибку, дак вот в чем дело, дело в том, что case отделяет иногда на бит больше, а иногда правильно, а нужно сверяться с первой процедурой (процедурами буду называть радиокнопки), если она (радиокнопка1) вычислила избыточность 3 бита, то и вторая процедура должна отделить тоже три бита, а не 4 как это сделать? В общем свои модификации кину во вложения, наверное я всех достал уже со своей программой...^_^
Вложения
Тип файла: rar хаффман.rar (231.9 Кб, 6 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 16.03.2013, 17:15   #17
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Помогите, пожалуйста
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 17.03.2013, 20:30   #18
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Ладно, сам все сделал, оптимизируйте кнопку проверить, исходники здесь
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть кто-нибудь, кто работал с файлами excel на c#? Bi0max Microsoft Office Excel 11 23.08.2012 13:07
Может я не совсем по теме, но я надеюсь что найдется кто нибудь кто мне подскажет... xoi90 Работа с сетью в Delphi 1 23.01.2012 16:35
не знаю как выполнить.кто-нибудь...ну кто-нибудь... blina Общие вопросы по Java, Java SE, Kotlin 1 12.05.2010 11:43
Нужен кто-нибудь, кто сможет подсказать, как подступиться к программированию Delphi & C++ Koshka_Kali Помощь студентам 2 30.11.2008 13:23
действие при выборе нужного <option> badfilin JavaScript, Ajax 2 16.04.2008 23:59