如何将DELPHI 的STRING 类型 与CHAR 类型转换。

wsfzhy 2003-06-23 02:31:47
A:CHAR;
S:STRING;
I,J,SUM:INTEGER;
FOR J:=1 TO LENGTH(S)DO BEGIN
A:=?(COPY(S,I,1);
I:=ORD(A);
SUM:=SUM+I;
END;
我想取S 的每个字符的ASCII码值。?应为什么函数。才能使ORD(A)值正确。
PCHAR()函数不正确。请指教。
...全文
794 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jorge 2003-06-23
  • 打赏
  • 举报
回复
来晚啦~~~~~~~~~~
up
sheepcyk 2003-06-23
  • 打赏
  • 举报
回复
S[I]就是一个char字符
lion_lh 2003-06-23
  • 打赏
  • 举报
回复
A:=S[I];
zlyanyan 2003-06-23
  • 打赏
  • 举报
回复
CopyMemory(@C,@S[1],Length(S));
注意 S为AnsiString,如果是WideString请先转换成AnsiString
该函数是Win Api,在Windows.Pas里
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
不过Borland用他自己的方法实现的。


the CopyMemory function copies a block of memory from one location to another.

VOID CopyMemory (

PVOID Destination, // address of copy destination
CONST VOID *Source, // address of block to copy
DWORD Length // size, in bytes, of block to copy
);


Return Values

This function has no return value.
bbs791109 2003-06-23
  • 打赏
  • 举报
回复
樓上的都對。
GoldProgramer 2003-06-23
  • 打赏
  • 举报
回复
String实际上就是Char的数组。
ziqing 2003-06-23
  • 打赏
  • 举报
回复
同意二楼的
DWGZ 2003-06-23
  • 打赏
  • 举报
回复
FOR J:=1 TO LENGTH(S)DO BEGIN
A:=S[I];
I:=ORD(A);
SUM:=SUM+I;
END;
firetoucher 2003-06-23
  • 打赏
  • 举报
回复
A:=S[I];
haoco 2003-06-23
  • 打赏
  • 举报
回复
可以这样啊:
A:CHAR;
S:STRING;
I,J,SUM:INTEGER;
FOR J:=1 TO LENGTH(S)DO BEGIN
{A:=?(COPY(S,I,1);} //去掉这一句
A:=Ord(S[j]);
I:=ORD(A);
SUM:=SUM+I;
END;
hawk0000 2003-06-23
  • 打赏
  • 举报
回复
不用转换
I:=ord(s[i])// i为0,1,2...

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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