Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

GetByte / StrToByte Delphi

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 11.05.2014, 06:28   #1
 Разведчик
Аватар для bestbeer
 
bestbeer никому не известный тип
Регистрация: 06.10.2013
Сообщений: 27
Популярность: 10
Сказал(а) спасибо: 24
Поблагодарили 12 раз(а) в 8 сообщениях
 
Smile GetByte / StrToByte Delphi

Вобщем я решил упростить свой код и переписать следующие функции с delphi на Vb.net.

Type
PParams = ^TParams;
TParams = packed record
Packet: array [0..100] of byte;
Param1,Param2,Param3: DWord;
Param4: array [1..100] of widechar;
end;

procedure StrToByte(bytecode:string; var aParams:TParams);
var
i:integer;
begin
i:=(length(bytecode) div 2)-1;
aParams.Param1:=i+1;
for i:=0 to i do
aParams.Packet[i]:=strtoint('$'+bytecode[i*2+1]+bytecode[i*2+2]);
end;


Function GetByte(Aint: Integer):string;
Var
Bytes: array of Byte;
begin
Result:='';
SetLength(Bytes, SizeOf(AInt));
CopyMemory(Bytes, @Aint, SizeOf(AInt));
Result:=IntToHex(bytes[0],2)+IntToHex(bytes[1],2)+IntToHex(bytes[2],2)+IntToHex(bytes[3],2);
SetLength(Bytes,0);
end;

Подчеркнутая часть кода мне не понятна. Поэтому прошу разъяснений, помочь понять.
  Ответить с цитированием
Старый 11.05.2014, 13:04   #2
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: GetByte / StrToByte Delphi

[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вторая функция во многих языках одинаковая
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 11.05.2014, 13:49   #3
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: GetByte / StrToByte Delphi

CopyMemory(Bytes, @Aint, SizeOf(AInt));
копирует данные из AInt в Bytes, по длине AInt

SetLength(Bytes,0);
Задает переменной Bytes максимальную длину 0, то есть чтобы туда не ввел длина этого текста будет равно нулю, в данным случае он будет пустым
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 11.05.2014, 19:21   #4
 Разведчик
Аватар для bestbeer
 
bestbeer никому не известный тип
Регистрация: 06.10.2013
Сообщений: 27
Популярность: 10
Сказал(а) спасибо: 24
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию Re: GetByte / StrToByte Delphi

Код Vb.net:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As UInteger, ByVal Source() As Byte, ByVal Length As Integer)

Private Function GetByte1(Aintt As UInteger) As String

Dim SzOf As Integer = System.Runtime.InteropServices.Marshal.SizeOf(Aint t)
Dim Bytes As Byte() = New Byte(SzOf) {}


CopyMemory(Aintt, Bytes, (SzOf))

For i = 0 To (Bytes.Count - 1)
Dim H1 As String = Hex(Bytes(i))
If Len(H1) = 1 Then
H1 = "0" & H1
End If
GetByte1 &= H1
Next


End Function



Всегда получаю ноли. Где ошибка?
  Ответить с цитированием
Старый 12.05.2014, 22:48   #5
 Разведчик
Аватар для bestbeer
 
bestbeer никому не известный тип
Регистрация: 06.10.2013
Сообщений: 27
Популярность: 10
Сказал(а) спасибо: 24
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию Re: GetByte / StrToByte Delphi

Переделал функцию:
Private Function GetByte(Aintt As UInteger) As String
Dim h0 As String
Dim h1 As String


Dim Bytes() As Byte = BitConverter.GetBytes(Aintt)

For i = 0 To (Bytes.Count - 1)

h1 = Hex(Bytes(i))

If Len(h1) = 1 Then
h0 &= "0"
End If
h0 &= h1


Next

Return h0
End Function

Добавлено через 7 часов 23 минуты
Цитата:
Сообщение от GinreyПосмотреть сообщение
SetLength(Bytes,0);
Задает переменной Bytes максимальную длину 0, то есть чтобы туда не ввел длина этого текста будет равно нулю, в данным случае он будет пустым

Непонятно для чего=)

Последний раз редактировалось bestbeer; 13.05.2014 в 06:12. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] Настраиваем Delphi 2010/XE, чтобы она выглядела как Delphi 7 RifmoGlas Pascal/Delphi 2 09.02.2013 14:09
[Информация] Помощь в Delphi 7 и в других версиях Delphi Babls77 Pascal/Delphi 4 03.11.2011 22:27
[Помогите!] Delphi |Sur| Вопросы и ответы, обсуждения 3 22.09.2011 17:32

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 07:35.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net