求救高手,怎样把这几句VB代码转成BCB的?

梦回童年001 2006-01-06 03:24:28
Private Sub Display()
Dim tmp1 As Byte
Dim tmp2 As Byte
Dim rddata As String

Open App.Path & "\wz.txt" For Binary As #1
Do While Not EOF(1) '
Get #1, , tmp1
Get #1, , tmp2

rddata = rddata + ChrW(tmp2 * CLng(256) + tmp1)
Loop
Close #1

//tmp2 * CLng(256) + tmp1这是解密函数。
//------------------------------------
上面是一段把从文件里把数据读出来,解密之后成Unicode 码转成字的一段程序。我
用BCB的方法却得不到正解的汉字,只是部份正解而已。
下面是我的做法,请问我哪做错了?
AnsiString FName="wz.txt" ;
char ch[256];
std::ifstream infile(FName.c_str(),std::ios::binary);
if(infile.is_open()) //°ÑÎļþ¶ÁÈëÊý×é
{
char c;

int i=0;
while(infile.get(c))
{
ch[i]=c;
i++;
}
}
wchar_t wszUnicode[256];;
int m=0;
AnsiString EndStr;
for(int k=0;k<255;k++)
{
// wszUnicode[m]=(ch[k+1]*256+ int(ch[k]));
wchar_t lss=(ch[k+1]*256+ int(ch[k])); //把Unicode 转成汉字。
WideString lsa(lss);
AnsiString ailsa(lsa);
EndStr +=ailsa;
k++;
m++;
}
infile.close();
...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyyoung 2006-01-18
  • 打赏
  • 举报
回复
捣乱。。。
梦回童年001 2006-01-07
  • 打赏
  • 举报
回复
真是晕。打搅各位了。
梦回童年001 2006-01-07
  • 打赏
  • 举报
回复
我知道什么原因了。是因为 有符号和无符号的问题。把上面的
wchar_t lss=(ch[k+1]*256+ int(ch[k]));
定义为
byte aa;
byte bb;
aa = ch[k+1];
bb = ch[k];
lss=(aa*256+ bb));
就行了。
ccrun.com 2006-01-06
  • 打赏
  • 举报
回复
汗。我也收到了同样的短信。

对VB不熟悉,友情冒过泡。
netsys2 2006-01-06
  • 打赏
  • 举报
回复
UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序

http://www.dc9.cn/post/85.asp

另外,你的短信非常不礼貌,我本来不打算回复的!

你的短信:

“急呀,帮帮我吧,要不我也不找你大斑猪了”
梦回童年001 2006-01-06
  • 打赏
  • 举报
回复
晕呀。
ChrW 是把Unicode 转成汉字。
CLng //是把Variant字符转成数字
constantine 2006-01-06
  • 打赏
  • 举报
回复
vb的我不会
梦回童年001 2006-01-06
  • 打赏
  • 举报
回复
AnsiString FName="wz.txt" ;
char ch[256];
std::ifstream infile(FName.c_str(),std::ios::binary);
if(infile.is_open())
{
char c;

int i=0;
while(infile.get(c))
{
ch[i]=c;
i++;
}
}
wchar_t wszUnicode[256];;
int m=0;
AnsiString EndStr;
for(int k=0;k<255;k++)
{
// wszUnicode[m]=(ch[k+1]*256+ int(ch[k]));
wchar_t lss=(ch[k+1]*256+ int(ch[k]));
WideString lsa(lss);
AnsiString ailsa(lsa);
EndStr +=ailsa;
k++;
m++;
}
infile.close();

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧