如何将带分隔符的字符串解析为字符串列表(parse a delimited string into a string list)

很多时候,需要使用字符作为分隔符将字符串拆分为字符串数组。例如,一个CSV(“逗号”分隔)文件可能有一行类似于“Zarko;Gajic;;DelphiGuide”,您希望使用分号“;”作为分隔符将该行解析为4行(字符串)“Zarko”、“Gajic”、“空字符串”)和“DelphiGuide”。...

很多时候,需要使用字符作为分隔符将字符串拆分为字符串数组。例如,一个CSV(“逗号”分隔)文件可能有一行类似于“Zarko;Gajic;;DelphiGuide”,您希望使用分号“;”作为分隔符将该行解析为4行(字符串)“Zarko”、“Gajic”、“空字符串”)和“DelphiGuide”。

Black man using laptop in coffee shop

Delphi提供了几种解析字符串的方法,但您可能会发现这两种方法都不能完全满足您的需要。例如,ExtractStrings RTL方法始终使用引号字符(单引号或双引号)作为分隔符。另一种方法是使用​分隔符和​TStrings类的DelimitedText属性,但不幸的是,在实现(“inside”Delphi)中存在一个错误,其中空格字符始终用作分隔符。

解析分隔字符串的唯一解决方案是编写自己的方法:

分隔字符串示例

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~已解析分隔的过程(常量sl:TStrings;常量值:string;常量分隔符:string);vardx:整数;ns:字符串;txt:字符串;delta:整数;begindelta:=长度(分隔符);txt:=值+分隔符;sl.BeginUpdate;sl.清晰;trywhile Length(txt)>0 dobegindx:=Pos(分隔符,txt);ns:=拷贝(txt,0,dx-1);sl.Add(ns);txt:=复制(txt,dx+增量,最大值);终止finallysl.EndUpdate;终止结束~~~~~~~~~~~~~~~~~~~~~~~~~

用法(填写备忘录1):解析分隔(备忘录1.line,'Zarko;Gajic;;DelphiGuide',';')

  • 发表于 2021-09-28 21:26
  • 阅读 ( 149 )
  • 分类:IT

你可能感兴趣的文章

自上而下(top down)和自下而上分析(bottom up parsing)的区别

...p解析的关键区别在于,top-down解析执行从起始符号到输入字符串的解析,而bottom-down解析执行从输入字符串到起始符号的解析。此外,自顶向下和自底向上解析的另一个重要区别是,自顶向下的解析使用最左边的派生,而自下而...

  • 发布于 2020-10-18 09:45
  • 阅读 ( 715 )

学习python?下面是如何操作字符串

... 可以使用split()方法将字符串拆分为基于分隔符的字符串列表。 ...

  • 发布于 2021-03-11 10:21
  • 阅读 ( 337 )

如何用代码读写xml文件

您想学习如何从java读写XML文件吗? ...

  • 发布于 2021-03-12 02:25
  • 阅读 ( 414 )

java8lambdas简介

...一个lambda表达式,它创建了一个用于不区分大小写地比较字符串的比较器。 ...

  • 发布于 2021-03-12 08:09
  • 阅读 ( 247 )

如何使用这9个函数在php中操作文本

... 7用分隔符把线分开 ...

  • 发布于 2021-03-27 01:14
  • 阅读 ( 242 )

python regex初出茅庐的程序员备忘单

...I want you to add\”\“”)输出:I want you to add“”\不打断字符串以从下一行开始打印(“这是一行\n这是第二行”)输出:这是一条线这是第二条线def function\u name(参数):命令使用可选参数初始化函数def yourName(x):打印(x+1...

  • 发布于 2021-03-29 18:37
  • 阅读 ( 256 )

bash需要知道的15个特殊字符

...上一级,然后又回到另一个目录。 cd ../gc_help /路径目录分隔符 您可以使用正斜杠(/)—通常称为斜杠来分隔路径名中的目录。 ls ~/work/archive 一个正斜杠表示可能的最短目录路径。由于Linux目录树中的所有内容都从根目录开始...

  • 发布于 2021-04-03 03:58
  • 阅读 ( 221 )

如何在linux上使用strings命令

...。它的目的是什么?是否有指向列出二进制文件中可打印字符串的命令的点? 让我们后退一步。诸如程序文件之类的二进制文件可以包含人类可读文本的字符串。但是你怎么才能看到他们呢?如果你使用cat或更少,你很可能会...

  • 发布于 2021-04-03 09:27
  • 阅读 ( 274 )

数组(array)和一串(string)的区别

...主要区别在于数组可以具有任何长度的任何数据类型,而字符串通常是以空字符“\0”结尾的ASCII字符。两者在不同编程语言中的实现方式都有很大的不同。数组和字符串在java中的工作方式与C++中的工作方式非常不同。本文介绍...

  • 发布于 2021-06-25 10:17
  • 阅读 ( 1399 )

int解析(int parse)和在c中转换为32#(convert toint32 in c#)的区别

...。它是.NET框架的一部分。它允许编写简单高效的程序。字符串是具有字符序列的数据类型。在编程中,需要对字符串进行处理。有多种方法可以将字符串转换为整数。其中两个是通过使用int.Parse和Convert to int32实现的。 覆盖的关...

  • 发布于 2021-07-01 04:44
  • 阅读 ( 206 )
姜娥奇
姜娥奇

0 篇文章

相关推荐