delphi 中,怎么把一段字符串,转换成16进制编码,之后再把16进制编码,还原成原先的字符串?
作者&投稿:钭尝 (若有异议请与网页底部的电邮联系)
你什么意思,16进制字符串中每一个字符对应的不就是ASCII值吗?你举例表示你是什么意思。
虽然提问结束,我还是给你写了一个转换函数
function TForm1.AsciiToHex(str: string): string;
var
i:integer;
changestr:string;
begin
changestr:='';
for i:=1 to length(str) do
begin
changestr:=changestr+inttohex(ord(str[i]),2);
end;
AsciiToHex:=changestr;
end;
var
src,des: string;
i: integer;
begin
src := edt1.Text;// 要转化的字符串
des := '';
for i := 1 to Length(src) do
begin
des := des + IntToHex(Ord(src[i]),2) + ' ' ;
end;
edt2.Text := des; //转化后的字符串
end;
function Encode16(const sourstr : string) : string; //把字符串转换成十六进制编码
var
i : integer;
begin
result := '';
for i := 0 to length(sourstr) - 1 do
begin
result := result + IntToHex(ord(sourstr[i+1]),2) ;
end;
end;
function Decode16(const SourStr : string) : string; //把用Encode16编码过的字串还原
var
i ,j: integer;
begin
result := '';
j := 0;
for i := 0 to length(sourstr) - 3 do
begin
result := result + chr(StrToInt('$' + copy(sourStr,j+1,2)));
j := j + 2;
if j >= length(sourstr) then
break;
end
end;
调用方法:
var
tmp,buf : string;
begin
tmp := 'hello,world!';
buf := Encode16(tmp); //68656C6C6F2C776F726C6421
tmp := Decode16(buf); //hello,world!
end;
栾葛来索: delphi]delete(str,pos('''''',str),2); delete(str,pos('''''',str),10000); showmessage(str);
灌阳县15878839858: delphi中 怎样截取字符串?
栾葛来索: 我的思路是一直用POS函数,查到一个删除一个/,当没有查到/时,那上一次的pos位置就是最后出现的位置,给你写了个函数,function PosEnd(const substr,str : string) : integer;var tmp : string; i,j,flag : integer;begin flag := -1; tmp := str; i := pos(...
灌阳县15878839858: delphi 取出一段字符串的整数 - ?
栾葛来索: 解决这个问题有两种办法:1、用正则表达式,标记出所有数字,然后取出.//正则对象 var uChecker: TRegExpr;//创建正则,并装载匹配规则. uChecker:= TRegExpr.Create; uChecker.Expression:= '\d[\.\d]*'; if uChecker.Exec(r_Name) then sStr...
灌阳县15878839858: delphi中怎么输入把一个字符串中字母和数字分离的代码? - ?
栾葛来索: 字符串可以看做字符数组,你就把输入的字符串中的字符逐个的比对ASCII码,再分别放到下面就好了.
灌阳县15878839858: 我想把字符串存到文本文件中 请哪位高人指点一下 delphi - ?
栾葛来索: FINI:= TIniFile.Create(Extractfilepath(Application.ExeName)+'aaa.ini'); FINI.WriteString('Configuration','A', 'bbb')); FINI.Destroy;
灌阳县15878839858: 【Delphi】字符串中取一段字符.比如 ' as.dfg/aa:482das ' 取此字符串中的' fg/aa:4 '?
栾葛来索: copy(str,4,7); copy(str,m,n); 取str中从第m个字符开始的n个字符; length()是求字符串长度的 从『“开始第三个字符”到“倒数第三个字符”』 copy(str,3,length(str)-6); 固定长度就是你要取的字符串长度
灌阳县15878839858: delphi中怎样把字符串分解? - ?
栾葛来索: var strlist:TStringList; begin strlist:=TStringList.Create; strlist.Delimiter :='*'; strlist.DelimitedText :='10.4*84*87'; ShowMessage(strlist[0]); ShowMessage(strlist[1]); ShowMessage(strlist[2]); strlist.free; end;
灌阳县15878839858: delphi 截取字符串 - ?
栾葛来索: a := copy('delphi', 0, 4); b := copy('asdfg', 1, 3); c := copy('qwer', 2, 2); 在Delphi中,除了起始位置的标志方法与VB不一样外,其它的都一样的.b := copy('asdfg',2, length('asdfg') - 2); Delphi中索引值是从0开始的.
灌阳县15878839858: 怎样在Delphi中处理字符串??
栾葛来索: //取左边数n个字符function LeftStr (const S : string; const N : Integer): string;beginend;begin//取字符串中Ch字符左边的内容function LeftTillStr (const S : string; const Ch : Char): string; M: Integer; M := Pos (Ch, S); if M < 2 then Result := '' else Result ...
灌阳县15878839858: delphi 字符串分割成单个字符 - ?
栾葛来索: var i:integer; st:string; c:char; begin st:=edit1.text; for i:=1 to length(st) do begin c:=st[i]; //c就是一个个的字符 end; end;