string与string[]不一样,string是一个动态数组,还没有分配空间,而string[]已经预分配了空间,只不过str[0]处没赋初值,这时如果用Move的话会把Byte数组中的数据拷贝到string空间中,而string这时还没有分配内存,肯定会造成AV错误) varbuf:array[0..100]ofbyte; str:string; i : Integer;beginfori :=50to81do...
string与string[]不一样,string是一个动态数组,还没有分配空间,而string[]已经预分配了空间,只不过str[0]处没赋初值,这时如果用Move的话会把Byte数组中的数据拷贝到string空间中,而string这时还没有分配内存,肯定会造成AV错误) varbuf:array[0..100]ofbyte; str:string; i : Integer;beginfori :=50to81do...
str:string; B:array of byte; begin str:='string'; setlength(b,length(str)); move(byte(str[1]),B,length(str)); end; move(byte(str[1]),B[0],length(str)); var S:String; P:PChar; B:array of Byte; begin S:='Hello'; SetLength(B,Length(S)+1); P:=PChar(S); CopyMemory...
string 是字符串,而byte 只是一个字节呀,除非string只有一个字,仅在ANSI的情况下,这时才可以将string转化成一个byte,即by=Ord(s[1])
具体你可以参考Delphi Help中String Type帮助. 2. PChar是Delphi为了和C语言的字符串类型(char *)兼容, 以便调用Windows API而建立的数据类型.所以pchar实际是 一个指针.一般使用方法是: pchar eg1; GetMem(eg1,Size); //你程序中出错就是因为没有为它分配内存 ...
byte可转化为char。 string某种程度上说就是char数组。
楼上的这几位用的是哪个版本的Delphi?根本没有这个例程啊。Byte是8位的,只能代表一个字符。所以应该只有在String只有一位时才能转。String只有一位那就是个Char 所以用Ord()和Chr()两个函数就可以互相转。
delphi中String,PChar,PByte,Array of Char,Array of Byte 转换 vars:string; pc:pchar; pb:pbyte; ac:array[1..100] of char; ab:array[1..100] of byte; i:integer; begin s:='this is a test'; pc:=pchar(s); //string->pchar ...
s:string;ab:array of byte;i:integer;begin s:='this is a test';SetLength(ab,Length(s));fo...
function TFrmStringToByte.ByteToString(const Value: TByteArr): String;var I: integer;S : String;Letra: char;begin S := '';for I := Length(Value)-1 Downto 0 do begin letra := Chr(Value[I] + 48);S := letra + S;end;Result := S;end;>> 运用EG:ShowMessage(Byte...