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()函数不正确。请指教。
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()函数不正确。请指教。
I:=ord(s[i])// i为0,1,2...
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;
A:=S[I];
I:=ORD(A);
SUM:=SUM+I;
END;
注意 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 ValuesThis function has no return value.