各位高手,问一个简单的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 tankdt
  • 开始时间 开始时间
T

tankdt

Unregistered / Unconfirmed
GUEST, unregistred user!
TempStr:=TempStr+string(char($50));
这里面的50如果我不在程序里写死,而是从一个数据库中以字符串的形式得到应该怎么写?
$50代表的什么意思?
 
TempStr:=TempStr+string(char($50));
这里面的50如果我不在程序里写死,而是从一个数据库中以字符串的形式得到应该怎么写?
$50代表的什么意思?
 
$50代表16进制的50h
也就是十进制的80,ASC码对应的字符为P

字符串就不用这么麻烦的转换了
 
十六进制的50,相当于十进制的80
 
我的意思是50本来是字符串,是从数据库里得到的啊,应该怎么写呢?
顺便问一下,关于网络唤醒,为什么在断电后又来电的情况下是无法唤醒的,
只有自己关机,不断电才能换醒
 
那句其实是TempStr:=TempStr+'P';
不过你说的数据库中的字符串表示是什么?如果还是表示ASC码的数字串的话
只怕还要多加一步
TempStr:=TempStr+string(char(strtoint(字段值)));
 
procedure TForm1.Button1Click(Sender: TObject);
var
SendCode:string;
TempStr:string;
i:integer;
FUDP: TIdUDPClient;
begin
SendCode:=StringofChar(#255,6); //FF*6
for i:=0 to 15 do
begin
TempStr:=TempStr //TempStr:=DestMAC*16
+string(char($50))
+string(char($34))
+string(char($55))
+string(char($49))
+string(char($34))
+string(char($de));
end;
SendCode:=SendCode+TempStr;
FUDP:=TIdUDPClient.Create(nil);
try
FUDP.Port:=7;
FUDP.Host:='10.10.10.2';
FUDP.Active:=True;
for I:=0 to 5 do
FUDP.Broadcast(SendCode,7);
finally
FUDP.Free;
end;
end;
为什么不能唤醒呢?
 
string(char($50)) 难道等于 '50' 吗?
 
数据库中当然就是字符串'50'啊
string(char(strtoint('50'))) 那$又该写在那里呢?
 
如果你确定是十六进制的
那就string(char(strtoint('$' + '50')))不就行了
用'$'或者'0x'均可
 
$50代表16进制的50h
也就是十进制的80,ASC码对应的字符为P
 
谢谢someset
关于网络唤醒,为什么在断电后又来电的情况下是无法唤醒的,
只有自己关机,不断电才能换醒
 
网络唤醒没用过,不清楚
 
谢谢someset回头给你分
那有谁知道有关网络唤醒的问题啊,这难道是个复杂的问题?
我帖出来的代码只能在没有断过电的情况下唤醒,断过电又该怎么说呢?
哪位高手知道啊?
 
怎么没人回答啊,难道没有人搞过网络唤醒
 
多人接受答案了。
 
后退
顶部