一共两个功能。用现在的代码速度太慢了,请大侠帮忙用汇编实现一下,不甚感激。=======================================================
第一个:
var
ss : String;
tLen : integer;
begin
ss := 'ab123cd';
tLen := length(ss);
if (tLen > 1) then begin
ss := copy(ss,tLen,1) + copy(ss,1,(tLen - 1));
end;
end;运行结果是: dab123c
=======================================================第二个:
var
ss : String;
tLen : integer;
begin
ss := 'ab123cd';
tLen := length(ss);
if (tLen > 1) then begin
ss := copy(ss,2,tLen) + copy(ss,1,1);
end;
end;运行结果是: b123cda
========================================================
第一个:
var
ss : String;
tLen : integer;
begin
ss := 'ab123cd';
tLen := length(ss);
if (tLen > 1) then begin
ss := copy(ss,tLen,1) + copy(ss,1,(tLen - 1));
end;
end;运行结果是: dab123c
=======================================================第二个:
var
ss : String;
tLen : integer;
begin
ss := 'ab123cd';
tLen := length(ss);
if (tLen > 1) then begin
ss := copy(ss,2,tLen) + copy(ss,1,1);
end;
end;运行结果是: b123cda
========================================================
解决方案 »
- 如用DELPHI编程实现将文件夹加密成EXE可执行的文件
- 主程序调用dll,dll中的窗体为什么Create后就直接调用Formshow中的代码,高手作答!!在线等待。。。。。。
- 字符串处理,现在我有一个"AD|DSSF|FF|SDDDF|",现在我想删除"FF|",得到一个新的字符串"AD|DSSF|SDDDF|".请问如何做!
- .dbf 文件转入oracle问题,快抓狂了,在线等。
- 用Dll来更新主界面的菜单如何实现,在线等...具体描述见下。解决马上给分.........
- 一个控制鼠标移动的简单问题!
- 再次,高分求一带进度条的数据备份与恢复的ACEESS的源码?
- 用VC取硬盘序列号很轻松,而至今也没看到DELPHI得程序可以实现得,大家不是说VC能实现得DELPHI也能实现得吗?
- 敬请各位网络高手解疑,一个困扰我的网络传输问题?
- 如何知道某月的第N个星期M的日期???
- Canvas.Draw()和Canvas.StretchDraw()的区别?
- 关于工具栏隐藏的问题 急啊
可能不必使用汇编,只使用move就可以了
论坛找到汇编相关的:
左环移 RL-Rotate left 进位左环移 RLC-Rotate left carry
右环移 RR-Rotate right 进位右环移RRC-Rotate right carry因为这个操作非常频繁,所以对性能要求比较高。 是不是汇编实现要快一点呢?
试一试,看看速度如何:
procedure moveleft(var s:string);
var
c:char;
l:integer;
begin
l:=length(s);
c:=s[1];
move(s[2],s[1],l-1);
s[l]:=c;
end;
procedure moveright(var s:string);
var
c:char;
l:integer;
begin
l:=length(s);
c:=s[l];
move(s[1],s[2],l-1);
s[1]:=c;
end;
我只能说代码速度慢不是因为delphi编译器的问题,也不是字符串的问题,而是错误使用的问题