阅读背景:

怎样把字符串单引号去掉

来源:互联网 
var 
str:string;
cutstr
begin
str:='#$a5#
var 
str:string;
cutstr
begin
str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
cutstr:=str;           //我能通过什么方法把cutstr:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6  变成这样。
end;

11 个解决方案

#1


该回复于2012-10-11 09:51:03被版主删除

#2


var i:integer;
for i:=1 to length(cutstr) do str:=str '#$' inttohex(ord(cutstr[i]),2));

#3


function HexStrToInt(mStr:string):integer;
var
  H,L:integer;
begin
  H := ord(mStr[1]);
  if H >= 65 then H:=H - 55 else H:=H - 48;
  L := ord(mStr[2]);
  if L >= 65 then L:=L - 55 else L:=L - 48;
  result := H*16 + L;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
  cutstr,cutstr2, temp:string;
  i: Integer;
begin
  cutstr2:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6;
  cutstr :='';
  str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
  for i := 0 to (Length(str) div 4 -1) do
  begin
    temp :=Copy(str,i*4+3,2);
    cutstr :=cutstr + Char(HexStrToInt(UpperCase(temp)));
  end;
  if cutstr=cutstr2 then

  ShowMessage(cutstr);
end;

#4


使用函数
AnsiDequotedStr(str, ''');
即可

#5


你这不是单纯的去除单引号,而是转换,参考3楼吧。

#6


str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量

这个字符串中,除了语法的单引号,哪里有单引号?
楼主不会是想去掉前后的单引号吧?如果是的话,得补一下基础知识了,
str := 'aaa';
执行之后, str的内容是 aaa 的字符串,而不是两边带引号的aaa字符串.

#7


就1楼的回复嘛。。

#8



kiboisme 
(蓝色光芒) 

要不然就是楼主没有说清楚

#9


楼主就是想把字符串转换成十六进制吧

#10


cutstr是啥类型呀? 看不懂楼主要干什么

#11


感觉蓝色光芒说的挺对的
字符串读出后就是不带单引号的,我感觉你这个没必要去掉,直接ShowMessage(str);就可以

a#
var 
str:string;
cutstr
begin
str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
cutstr:=str;           //我能通过什么方法把cutstr:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6  变成这样。
end;

11 个解决方案

#1


该回复于2012-10-11 09:51:03被版主删除

#2


var i:integer;
for i:=1 to length(cutstr) do str:=str '#$' inttohex(ord(cutstr[i]),2));

#3


function HexStrToInt(mStr:string):integer;
var
  H,L:integer;
begin
  H := ord(mStr[1]);
  if H >= 65 then H:=H - 55 else H:=H - 48;
  L := ord(mStr[2]);
  if L >= 65 then L:=L - 55 else L:=L - 48;
  result := H*16 + L;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
  cutstr,cutstr2, temp:string;
  i: Integer;
begin
  cutstr2:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6;
  cutstr :='';
  str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
  for i := 0 to (Length(str) div 4 -1) do
  begin
    temp :=Copy(str,i*4+3,2);
    cutstr :=cutstr + Char(HexStrToInt(UpperCase(temp)));
  end;
  if cutstr=cutstr2 then

  ShowMessage(cutstr);
end;

#4


使用函数
AnsiDequotedStr(str, ''');
即可

#5


你这不是单纯的去除单引号,而是转换,参考3楼吧。

#6


str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量

这个字符串中,除了语法的单引号,哪里有单引号?
楼主不会是想去掉前后的单引号吧?如果是的话,得补一下基础知识了,
str := 'aaa';
执行之后, str的内容是 aaa 的字符串,而不是两边带引号的aaa字符串.

#7


就1楼的回复嘛。。

#8



kiboisme 
(蓝色光芒) 

要不然就是楼主没有说清楚

#9


楼主就是想把字符串转换成十六进制吧

#10


cutstr是啥类型呀? 看不懂楼主要干什么

#11


感觉蓝色光芒说的挺对的
字符串读出后就是不带单引号的,我感觉你这个没必要去掉,直接ShowMessage(str);就可以

#
var 
str:string;
cutstr
begin
str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
cutstr:=str;           //我能通过什么方法把cutstr:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6  变成这样。
end;

11 个解决方案

#1


该回复于2012-10-11 09:51:03被版主删除

#2


var i:integer;
for i:=1 to length(cutstr) do str:=str '#$' inttohex(ord(cutstr[i]),2));

#3


function HexStrToInt(mStr:string):integer;
var
  H,L:integer;
begin
  H := ord(mStr[1]);
  if H >= 65 then H:=H - 55 else H:=H - 48;
  L := ord(mStr[2]);
  if L >= 65 then L:=L - 55 else L:=L - 48;
  result := H*16 + L;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
  cutstr,cutstr2, temp:string;
  i: Integer;
begin
  cutstr2:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6;
  cutstr :='';
  str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
  for i := 0 to (Length(str) div 4 -1) do
  begin
    temp :=Copy(str,i*4+3,2);
    cutstr :=cutstr + Char(HexStrToInt(UpperCase(temp)));
  end;
  if cutstr=cutstr2 then

  ShowMessage(cutstr);
end;

#4


使用函数
AnsiDequotedStr(str, ''');
即可

#5


你这不是单纯的去除单引号,而是转换,参考3楼吧。

#6


str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量

这个字符串中,除了语法的单引号,哪里有单引号?
楼主不会是想去掉前后的单引号吧?如果是的话,得补一下基础知识了,
str := 'aaa';
执行之后, str的内容是 aaa 的字符串,而不是两边带引号的aaa字符串.

#7


就1楼的回复嘛。。

#8



kiboisme 
(蓝色光芒) 

要不然就是楼主没有说清楚

#9


楼主就是想把字符串转换成十六进制吧

#10


cutstr是啥类型呀? 看不懂楼主要干什么

#11


感觉蓝色光芒说的挺对的
字符串读出后就是不带单引号的,我感觉你这个没必要去掉,直接ShowMessage(str);就可以

#######
var 
str:string;
cutstr
begin
str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
cutstr:=str;           //我能通过什么方法把cutstr:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6  变成这样。
end;

11 个解决方案

#1


该回复于2012-10-11 09:51:03被版主删除

#2


var i:integer;
for i:=1 to length(cutstr) do str:=str '#$' inttohex(ord(cutstr[i]),2));

#3


function HexStrToInt(mStr:string):integer;
var
  H,L:integer;
begin
  H := ord(mStr[1]);
  if H >= 65 then H:=H - 55 else H:=H - 48;
  L := ord(mStr[2]);
  if L >= 65 then L:=L - 55 else L:=L - 48;
  result := H*16 + L;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
  cutstr,cutstr2, temp:string;
  i: Integer;
begin
  cutstr2:=#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6;
  cutstr :='';
  str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量
  for i := 0 to (Length(str) div 4 -1) do
  begin
    temp :=Copy(str,i*4+3,2);
    cutstr :=cutstr + Char(HexStrToInt(UpperCase(temp)));
  end;
  if cutstr=cutstr2 then

  ShowMessage(cutstr);
end;

#4


使用函数
AnsiDequotedStr(str, ''');
即可

#5


你这不是单纯的去除单引号,而是转换,参考3楼吧。

#6


str:='#$a5#$0a#$01#$00#$08#$08#$08#$08#$08#$08#$0b#$a6'; //有单引号的字符变量

这个字符串中,除了语法的单引号,哪里有单引号?
楼主不会是想去掉前后的单引号吧?如果是的话,得补一下基础知识了,
str := 'aaa';
执行之后, str的内容是 aaa 的字符串,而不是两边带引号的aaa字符串.

#7


就1楼的回复嘛。。

#8



kiboisme 
(蓝色光芒) 

要不然就是楼主没有说清楚

#9


楼主就是想把字符串转换成十六进制吧

#10


cutstr是啥类型呀? 看不懂楼主要干什么

#11


感觉蓝色光芒说的挺对的
字符串读出后就是不带单引号的,我感觉你这个没必要去掉,直接ShowMessage(str);就可以

b#$a6'; //有单引号的字符变量 str:=



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: