网上看了一下,好象没有现成的,自己随手写了一下,给大家参考一下吧

 // a..z  97..122  A..Z  65..90
function UpABC(ABC : String; AddCount : Integer) : String;
var
i, c, x : Integer;
Ask : Boolean;
begin
if Length(ABC) > then
begin
x := AddCount mod ; if Ord(ABC[]) > then // 判断大小写
begin
Ask := True;
Result := ABC;
end
else
begin
Ask := False;
Result := LowerCase(ABC);
end; for i := Length(ABC) downto do
begin
c := Ord(Result[i]); if i = Length(Result) then
c := c + x
else
Inc(c);
if c > then // 超出 z 界
begin
c := c - ; // 本位回到 a .. z
Result[i] := Char(c);
if i = then
Result := Char(c) + Result; // 第一位加 a A
end
else
begin
Result[i] := Char(c);
Break; // 跳出循环
end;
end; if not Ask then
Result := UpperCase(Result);
end
else
Result := '';
end; function DownABC(ABC : String; SubCount : Integer) : String;
var
i, c, x : Integer;
Ask : Boolean;
begin
if Length(ABC) > then
begin
x := SubCount mod ; if Ord(ABC[]) > then // 判断大小写
begin
Ask := True;
Result := ABC;
end
else
begin
Ask := False;
Result := LowerCase(ABC);
end; for i := Length(Result) downto do
begin
c := Ord(Result[i]);
if i = Length(Result) then
c := c - x
else
Dec(c);
if c < then
begin
if Length(Result) = then // 长度为 1
begin
Result := 'a';
Break;
end;
c := c + ; // 本位回到 z or Z
Result[i] := Char(c);
if i = then
Result := Copy(Result, , Length(Result) - );
end
else
begin
Result[i] := Char(c);
Break; // 跳出循环
end;
end; if not Ask then
Result := UpperCase(Result);
end
else
Result := '';
end;

Delphi 字母 递增 递减算法的更多相关文章

  1. PHP 字符串的隐式转换规则以及针对包含字母的字符串的递增/递减操作

    之前一直对 PHP 中关于字符串的算数运算隐式类型转换规则和递增/递减操作符针对字符串的操作比较模糊,今天总结一下. 一.隐式转换 二进制算术运算符的隐式类型转换规则(http://php.net/m ...

  2. PHP中的运算符---位运算符、递增递减运算符、三元运算符、字符串运算符、数组运算符、类型运算符、错误控制运算符

    1.位运算符 位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作. 运算类型 运算符 举例 结果 按位与 & $a & $b 将$a 与 ...

  3. 谨慎使用递增/递减运算符(C++)

    递增++和递减运算符--不论看起来还是用起来,都感觉是十分简单而又优雅的,然而其中却藏有无法受控制的陷阱,我们必须小心的避免错误的用法而出现的不可控的情况发生. 比方说:x = 2* x++ *(3 ...

  4. javascript中的递增递减操作符

    javascript中递增递减属于一元操作符,所谓一元操作符,即只能操作一个值的操作符. 递增和递减操作符各有两个版本:前置型和后置型.顾名思义,前置型应该位于要操作的变量之前,而后置型应该位于要操作 ...

  5. C++ Primer笔记12_运算符重载_递增递减运算符_成员訪问运算符

    1.递增递减运算符 C++语言并不要求递增递减运算符必须是类的成员.可是由于他们改变的正好是所操作对象的状态.所以建议设定为成员函数. 对于递增与递减运算符来说,有前置与后置两个版本号,因此.我们应该 ...

  6. C基础知识(3):指针--概念、数组中指针的递增/递减、指针数组&数组指针、指向指针的指针

    指针是一个变量,其值为另一个变量的地址. 所有指针的值的实际数据类型,不管是整型.浮点型.字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数. 下面从4个代码例子分别讲述以下 ...

  7. WPF开发随笔收录-带递增递减按钮TextBox

    一.前言 今天分享一下如何实现带递增递减按钮的TextBox控件 二.正文 1.之前的博客分享了一篇自定义XamlIcon控件的文章,这次就直接在那个项目的基础上实现今天这个自定义控件 2.首先添加两 ...

  8. 【C++】递增递减操作符与指针的关系

    可以将递增与递减操作符用于指针和基本变量,将递增操作符用于指针时,将把指针的值增加其指向的数据类型占用的字节数,这种规则适用于对指针递增和递减. int arr[5] = {21,32,23,45,3 ...

  9. execl列数据成等差递增递减

    如上图若想以10,20,30...这样递增: 1).首先需选中10,20所在的单元格,鼠标移至20所在的单元格右下角 2).此时会出现一个十字"十"符号,点击直向下拖动至某个地方, ...

随机推荐

  1. ubuntu16.04 使用kinectv2跑Elasticfusion

    1.安装openni2 参考:https://blog.csdn.net/D206_hero/article/details/78985859?utm_source=blogxgwz3  sudo a ...

  2. Java(常用排序算法)

    冒泡排序 比较相邻的元素.如果第一个比第二个大,就交换他们两个,对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最 ...

  3. 为什么以sys无法远程登录数据库

    今天通过pl/sql连接一个数据库,普通用户能连接上,但是sys就连接不上,告诉我用户名密码错误.之前其实遇到过这个问题,然后就开始查找原因.整个过程记录如下,结果是扎心的,过程也不是完全都懂.记下来 ...

  4. MySQL和MySQL的注释方式

    MySQL的注释方式   mysql 服务器支持如下几种注释方式: (1) # 到该行结束     # 这个注释直到该行结束 mysql> SELECT 1+1; (2)-- 到该行结束     ...

  5. py-day4-1 python reduce函数

    from functools import reduse    从模块中导入 reduce函数: 处理一个序列,然后把序列进行合并操作 #**** 问题:求1+2+3+100的和是多少? # 一,原始 ...

  6. TZipFile FileNames中文乱码解决办法

    TEncoding.Default.GetString(zip.FileInfo[0].FileName); 补充说明: Zip.Extract(Zip.FileName[0], 'd:\'); 解压 ...

  7. Fiddler2如何对Android应用进行抓包

    Fiddler2抓包工具的下载和使用  2018-04-22 18:06:37     0     0     0 Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个h ...

  8. DSP 运行时间计算函数--_itoll(TSCH,TSCL);

    DSP OMAP 程序耗时测定 CPU周期 两种方法 利用TSCL和TSCH来计算时钟周期,这两天看了一下如何他们 DSP开发,测量某个函数或某段代码的cycles消耗是经常要做的 事情,常用的pro ...

  9. 7_CentOS下安装和卸载AdobeReader

    曾经最喜欢Fedora 版本的Linux,但是因为现在Fedora的界面实在太花里胡哨了,所以最近开始捣鼓CenOS,本来 RedHat的EL版本也是一个不错的选择,最后想想还是用社区版的. 话说Ce ...

  10. vim汇总

    跳到100行 100gg :100