procedure TFlowSubtitles.btnOKClick(Sender: TObject);
var
nLength : Integer;
TxBuf_Com : array of Byte;
TxBuf_Net : array[0..13] of Byte; //发送数据数组
i, j, k, m : Integer; //循环
iCount : Integer; //数据大小
Ansi_Str: String; //宽字节
Wide_Str: WideString; //宽字节
WideChar_Byte_Array: Array of Byte; //宽字节转成byte数组
DateTemp : array of Byte; //保存转化成的数组
FlowSubtitlesDate : array of array of Byte; //保存转化后的十进制二维数组
begin
//Ansi_Str := edtFSDate.Text;
Ansi_Str := MemoDate.Text;
nLength := Length(Ansi_Str);
//字符串转成Unicode 存储在WideChar_Byte_Array字节数组中,存储的是十进制
Wide_Str := Ansi_Str; //转为Unicode
SetLength(WideChar_Byte_Array, Length(Wide_Str) * sizeof(WideChar)); //字节数 = Unicode字数 * Unicode单字的字节数
Move(PChar(Wide_Str)^, WideChar_Byte_Array[0], Length(Wide_Str) * sizeof(WideChar)); //复制到字节数组当中
nLength := Length(WideChar_Byte_Array) ;
SetLength(DateTemp, nLength + 2); //长度+2 因为转换出来的字节数组中含有字符串结束符,浅赋值,用同一内存地址
//一维数组赋值
for i := 0 to nLength do
begin
DateTemp[i] := WideChar_Byte_Array[i];
end;
///一维数组 转存成 二维数组/
iCount := (Length(DateTemp) div 2) - 1;
SetLength(FlowSubtitlesDate, iCount, 2);
for k := 0 to iCount -1 do
begin
for m := 0 to 1 do
begin
FlowSubtitlesDate[k,m] := DateTemp[k * 2 + m];
end;
end;
Delphi 字符串转字节数组
最新推荐文章于 2024-07-15 02:39:50 发布