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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 00:31   #1
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию вызвать процедуру

имеется процедура-
Код:
procedure checksum(strInp : string; var rE, rO : byte);
var i, i1 : longint;
begin
i1 := length(strInp);
For i:=1 to i1 do
if i mod 2 = 1 then
 rE := rE XOR ord(strInp[i])
else
 rO := rO XOR ord(strInp[i])
end;
как ее вызвать нажатием баттон1 и вывести значения rE и rO в лабелы 1 и 2 ?
p.s strInp = 1E0010230034000801
fize вне форума Ответить с цитированием
Старый 14.01.2010, 00:49   #2
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

что-то вроде этого:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  rE, rO: Byte;
  strInp: String;
begin
  strInp := '1E0010230034000801';
  checksum(strInp, rE, rO);
  Label1.Caption := IntToStr(rE);
  Label2.Caption := IntToStr(rO);
end;
Alex_FF вне форума Ответить с цитированием
Старый 14.01.2010, 00:51   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure TForm1.Button1Click(Sender:TObject);
var i,j:integer;
begin
 checksum('1E0010230034000801',i,j);
 Label1.Caption:=IntToStr(i);
 Label2.Caption:=IntToStr(j);
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 14.01.2010 в 00:53.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.01.2010, 00:56   #4
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Alex_FF, Пепел Феникса преогромное спасибо.
fize вне форума Ответить с цитированием
Старый 14.01.2010, 01:51   #5
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

подскажите еще. программа выдает неверное значение. для строки 1E0010230034000801 оно соответствует E 1F а у меня выводится 49 75.
исходник на vb2008-
Цитата:
Public Function checksum(ByVal command As String) As Byte()
Dim len, n As Integer
Dim xor_odd As Byte = &H0
Dim xor_even As Byte = &H0
Dim result(2) As Byte
len = command.Length

If len Mod 2 = 0 Then
For n = 0 To len - 4 Step 4
xor_even = xor_even Xor "&H" & command.Substring(n, 2)
xor_odd = xor_odd Xor "&H" & command.Substring(n + 2, 2)
Next

result(0) = xor_even
result(1) = xor_odd
Return result
End If
End Function
fize вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вызвать процедуру? ai\ekcah^p Паскаль, Turbo Pascal, PascalABC.NET 4 25.06.2009 11:21
Вызвать процедуру нажатия кнопки Rusl92 Общие вопросы Delphi 1 23.11.2008 13:13
вызвать процедуру для tray.OnClick и закрузить в нее нужную иконку KORN Компоненты Delphi 8 02.10.2007 00:17
Как вызвать процедуру ??? Marat Помощь студентам 8 02.03.2007 15:11