`
heiheben
  • 浏览: 136605 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Delphi字符串处理(下面贴出的是完整的可运行代码)

阅读更多

直接将下面的代码拷贝到IDE中是可运行的,我这里只做几点解释

1.在delphi中换行  不是\n  也不是 \r  而是  #13#10

2.取memo的行数  MContent.lines.count

3.判断字符串中某个字符的位置  Pos('m', str)  第一个参数为欲查找的字符

4.截取字串  copy(str, 7, size); 参数定义为 原字符串、开始位置(包含)、结束位置(不包含)

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls,Clipbrd;



type

  TMainForm = class(TForm)

    MContent: TMemo;

    BAddText: TButton;

    SaveDialog1: TSaveDialog;

    OpenDialog1: TOpenDialog;

    BCut: TButton;

    BCopy: TButton;

    BPaste: TButton;

    BSave: TButton;

    BOpen: TButton;

    BExit: TButton;

    BClear: TButton;

    BRollback: TButton;



    procedure BAddTextClick(Sender: TObject);

    procedure BCutClick(Sender: TObject);

    procedure BSaveClick(Sender: TObject);

    procedure BOpenClick(Sender: TObject);

    procedure BCopyClick(Sender: TObject);

    procedure BPasteClick(Sender: TObject);

    procedure BExitClick(Sender: TObject);

    procedure BClearClick(Sender: TObject);

    procedure BRollbackClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;



var

  MainForm: TMainForm;



implementation



{$R *.DFM}



procedure TMainForm.BAddTextClick(Sender: TObject);

var

   before,after,current,full,str : String;

   i : Integer;

begin

    //按照行获得memo中的内容

    MContent.SelectAll;

    //如果内容为空,跳出提示

    if MContent.SelLength=0 then

    begin

      showMessage('靠!耍我啊!粘贴字段先......');

    end

    else

    begin

    //定义域添加的常量字符串

    before := 'inbuf=FML32'+ #13#10+'outbuf=FML32'+ #13#10+'export=true'+ #13#10;

    current:= 'param=';

    after  := 'type=string'+ #13#10+'access=inout'+ #13#10+'count=0'+ #13#10+'';

    full := '';

      for i := 0 to MContent.lines.count - 1 do

      begin

          str := MContent.Lines[i];

          if length(trim(str)) > 0 then

          begin

            //生成所欲要的格式

            str := UpperCase(str)+ #13#10;

            //添加到memo中

            full := full + before +  current + str + after;

            if i <> MContent.lines.count - 1 then

               full := full + #13#10;

          end

      end;

      MContent.Clear;

      MContent.text := full;

    end

end;



procedure TMainForm.BCutClick(Sender: TObject);

begin

MContent.SelectAll;

if MContent.SelLength>0 then

begin

   MContent.CutToClipboard;

   MContent.Clear;

end

end;



procedure TMainForm.BSaveClick(Sender: TObject);

begin

  if savedialog1.Execute then

    MContent.Lines.SaveToFile(savedialog1.FileName);

end;



procedure TMainForm.BOpenClick(Sender: TObject);

begin

  if Opendialog1.Execute then

    MContent.Lines.LoadFromFile(opendialog1.FileName);

end;



procedure TMainForm.BCopyClick(Sender: TObject);

begin

      MContent.selectall;

      MContent.copytoclipboard;

end;



procedure TMainForm.BPasteClick(Sender: TObject);

begin

    MContent.Clear;

    MContent.PasteFromClipboard;

end;



procedure TMainForm.BExitClick(Sender: TObject);

begin

  close;

end;



procedure TMainForm.BClearClick(Sender: TObject);

begin

  MContent.Clear;

end;



procedure TMainForm.BRollbackClick(Sender: TObject);

var

   full,str : String;

   i, size: Integer;

begin

    //按照行获得memo中的内容

    MContent.SelectAll;

    //如果内容为空,跳出提示

    if MContent.SelLength=0 then

    begin

      showMessage('靠!耍我啊!都没有东西还原什么!不能这么欺负人吧......');

    end

    else

    begin

      full := '';

      for i := 0 to MContent.lines.count - 1 do

      begin

          str  := MContent.Lines[i];

          size := length(str);

          if length(trim(str)) > 0 then

          begin

            //生成所欲要的格式

            if  Pos('m', str) > 0  then

            begin

              str := copy(str, 7, size);

              //添加到memo中

              full := full + str + #13#10;

            end

          end

      end;

      MContent.Clear;

      MContent.text := full;

    end

end;



end.



分享到:
评论

相关推荐

    DELPHI 字符串处理单元

    本主题将深入探讨“DELPHI 字符串处理单元”中的关键知识点,包括宽字节处理、wideString类型、中文字符串处理以及优化的字符串操作。 首先,宽字节处理是Unicode标准的一部分,旨在支持全球各种语言的字符集。在...

    Delphi字符串快速替换函数,速度超快 秒杀自带的StringReplace函数

    通过分析和学习这个文件,我们可以深入理解高级字符串处理技术,并将其应用到自己的项目中,提高代码的运行效率。 总之,当Delphi内置的`StringReplace`函数无法满足性能需求时,开发者会寻求自定义解决方案,如`Q_...

    delphi枚举字符串转换

    枚举类型在处理固定集合的值时非常有用,而字符串转换则是编程中常见的操作,特别是在处理用户输入或数据交互时。当我们需要将枚举类型与字符串相互转换时,Delphi提供了多种方法来实现这一目标。以下将详细介绍如何...

    delphi 实现截取字符串中中文+英文混合截取

    通过打开和分析这些文件,我们可以看到具体的实现代码,以及如何在Delphi IDE中运行和调试这个字符串截取的DEMO。 总结来说,处理Delphi中的中文和英文混合字符串截取,关键在于理解Unicode字符串的特性,正确选择...

    DELPHI 计算两个字符串相似度 LCS算法(附源代码)

    - LCSUnit.pas: 这是DELPHI的单元文件,包含了LCS算法的实现代码,可能包括字符串处理和动态规划数组的声明及填充逻辑。 - LCSProject.res: 资源文件,可能包含应用程序的图标和其他资源。 通过这些文件,你可以...

    DELPHI Levenshtein算法 字符串相似度计算(附源码)

    总的来说,这个压缩包提供了一个完整的DELPHI项目,实现了Levenshtein算法,可用于计算字符串的相似度。开发者可以通过查看源代码学习如何在DELPHI中实现这个算法,也可以直接使用提供的可执行文件进行快速的字符串...

    delphi计算两个字符串相似度源码 Levenshtein算法版

    《使用Delphi实现Levenshtein算法:计算字符串相似度》 在信息技术领域,字符串处理是常见的任务之一,其中计算两个字符串的相似度是尤为重要的一个环节。Levenshtein算法,也称为编辑距离算法,就是用于衡量两个...

    delphi字符串调用类、方法(源码)

    这些代码可能涉及如何将字符串转换为类方法调用,如何处理错误,以及如何在运行时动态地使用字符串来控制程序的行为。 总结来说,Delphi通过`TMethod`、RTTI和动态类型系统提供了强大的字符串调用类和方法的能力。...

    Delphi 字符串截取的例子.rar

    在 Delphi 编程环境中,字符串处理是一项基本且重要的任务。标题中的“Delphi 字符串截取的例子”指的是利用 Delphi 的内置函数或方法来提取字符串的一部分。在这个例子中,开发者尝试从字符串的左边开始截取指定...

    字符串截取小例子Delphi源代码..rar

    这个"字符串截取小例子Delphi源代码..rar"压缩包文件显然包含了一些使用Delphi编写的示例代码,这些代码展示了如何在Delphi程序中进行字符串截取操作。在Delphi中,处理字符串是一项基本且重要的任务,因为字符串...

    Delphi—字符串与内码相互转换的小程序

    在Delphi中,处理字符串通常涉及到`String`类型,它实际上是Unicode字符串,使用UTF-16编码。 该程序包含以下主要组成部分: 1. **用户界面**:一个窗体(Form)是用户与应用程序交互的界面,用户可以在此输入文本...

    delphi 判断字符串是否为整数.rar

    通过运行这个项目,开发者可以直观地看到如何在 Delphi 中实现字符串到整数的验证。 这个例子虽然简单,但对于初学者来说,它是理解 Delphi 编程和错误处理的一个很好的起点。同时,对于有经验的开发者,它可以作为...

    解压Zip字符串(Delphi)

    Delphi是一款强大的Object Pascal集成开发环境,它的跨平台特性使得开发者可以在多种操作系统上编写和运行代码。在Delphi中实现gZip解压,通常会借助第三方库,例如ZLib库。ZLib是一个开源的压缩库,它提供了对包括...

    高效中英文字符串截取方法

    首先,代码中使用了GB2312编码来处理字符串。GB2312是一种支持简体中文的字符集,它将中文字符映射到多字节序列中。对于ASCII范围内的字符(即大部分英文字符),只需要一个字节即可表示;而中文字符则通常需要两个...

    字符串加密组件-Encode-Delphi原码

    总之,《字符串加密组件-Encode-Delphi原码》为Delphi开发者提供了一套完整的加密解决方案,它不仅包含了实际的加密算法实现,还考虑到了实际应用中的可配置性和扩展性。通过对源代码的研究,开发者不仅可以提升自身...

    Sql Server脚本转Delphi语言格式字符串工具

    - Delphi字符串反解析器:这部分代码接收Delphi字符串,识别其多行和转义特性,重构出原始的SQL语句。 - 用户界面:即使这是一个简单的工具,用户界面也是必不可少的,它应该提供文件导入导出、预览和转换选项等功能...

    Delphi7删除字符串指定字符(汉字)的例子.rar

    Delphi7删除字符串指定字符的例子,如图所示的运行效果,示例如下文字:“经过这几天在网上的淘金,多少也有些了解了,但是现在我发现就算将分区正确的话,分区所指向的目录区也许会有些问题。”,删除指定的文字为...

    探索Delphi的字符串魔力:深入字符串操作的艺术

    下面我们将深入探讨 Delphi 中字符串操作的特点及其应用。 ## Delphi 字符串概述 ### 动态字符串 Delphi 中的字符串是动态的,这意味着它们可以在运行时根据需要增长或缩短。这与一些静态字符串类型的编程语言形成...

    delphi2007字符串资源汉化

    在Delphi 2007中,字符串资源的汉化是一项关键任务,尤其对于开发面向中国市场的软件来说,本地化是必不可少的步骤。 字符串资源汉化主要是将程序中的英文文本转换为中文,以提供更友好的用户界面。在Delphi中,...

    Delphi进制转换,十进制,二进制,十六进制,字符串--超短精简

    本文将深入解析Delphi中关于十进制、二进制、十六进制以及字符串之间的转换方法,旨在为程序员提供实用且精炼的代码示例。 ### 十进制转其他进制 #### 十进制转二进制 在Delphi中,将一个整数转换成二进制字符串...

Global site tag (gtag.js) - Google Analytics