如何从二进制数组中分别读取指定字段为 WORD string类型?
解决方案 »
- inno setup 怎样检查一个文件是否存在?急!!!!!!!!
- 数据采集高手请进!
- 怎样删除treeview中一项下面的所有子项,主要怎么删除数据表中的内容,
- 升级
- 在D中怎么实现向导精灵式的界面?
- 如何访问TRODataSnapModule中的方法呢?
- memo + ADOQuery 的怪问题
- while table1.recordcount>0 do table1.delete;时,为什么程序会失去响应?
- 急!高分求救!delphi中如何调api控制"音量控制"中麦克风的静音的选择框.对麦克风静音控制.
- 警告"Method 'Destroy' hides virtual method of base type 'TObject'"如何消除
- 如何将执行结果写入到文本文档中?
- 麻煩各位DELPHI高手能給小弟以下代碼按句注解,研究很久了還是搞不清楚DELPHI是如何獲得版本號的,小弟不甚感謝
void* dest,
const void* src,
size_t count
);
如果是要获取WORD第3个参数就 sizeof(WORD)
如果是要获取string用char *strcpy( char *strDestination, const char *strSource )
读到/0的时候自然会返回
buf: array of Byte;
dw: DWORD;
begin
CopyMemory(@dw, @buf, SizeOf(DWORD));
end;
var word1:word;
byte1,byte2:byte;
word1:=byte1*256;
word1:=word1+byte2;
var
A1 : array[0..1] of byte;
B : Word;
begin
A1[0] := 0;
A1[1] := 1;
Move(A1[0],B,2); ShowMessage(inttostr(B));
end;
假设 buf:array[0..20] of byte;
dw:WORD;
我要取 buf中 第10 11两个byte 转成word ,
CopyMemory(@dw, @buffer[10], SizeOf(WORD)); ?
type
TWordByte=array[0..20] of byte;
var
A1 : TWordByte;
B : Word;
begin
A1[0] := 0;
A1[1] := 1;
A1[10] := 3;
A1[11] := 0; Move(A1[10],B,2);
ShowMessage(inttostr(B));
end;
TWordByte=array[0..20] of byte;
var
A1 : TWordByte;
B : PWord;
begin
A1[0] := 0;
A1[1] := 1;
A1[10] := 3;
A1[11] := 0;
B := @A1[10];
ShowMessage(inttostr(B^));
end;
接下来是字符串的问题。。假设 buf:array[0..100] of byte;
str:string[32]; 要取 50-82的byte为str,该如何操作?
SetLength(str, 32);
Move(buf[50], str[1], 32);
这样执行之后 str 还是空的。。
怎么可能?
var
buf: array[0..100] of byte;
str: string[32];
i : Integer;
begin
for i := 50 to 81 do buf[i] := ord('A') + i - 50;
SetLength(str, 32);
Move(buf[50], str[1], 32);
ShowMessage (str);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
A : array[0..100] of byte;
b : Word;
C : AnsiString;
begin
A[31] := 65;
a[32] := 0; PByteArray(@B)^[0] := a[31];
PByteArray(@B)^[1] := a[32]; ShowMessage(inttostr(B)); setLength(C,3);
move(A[31],C[1],2);
SHowMessage(C);end;一次性讓你清醒,看WORD值是多少,STR顯示是什麼?? 然後想想 ASCII 65 對應的符合是多少?? 秀峰的方式肯定是對的。只是你想要的是 inttostr後的效果。
ByteArray与Word、Integer类型都有例子了,String与ByteArray就不会了~
String与其它类型的区别仅在于第1位放长度,第2位放实际数据!
说来惭愧,delphi已经用了有一个月了,但是最基础的还没掌握,老问些无语的问题。。
最后请教下,一直想找本delphi方面经典的书(像C++方面Primer这样的),麻烦各位大大推荐一本,小弟翘首以盼!