很多时候,需要使用字符作为分隔符将字符串拆分为字符串数组。例如,一个CSV(“逗号”分隔)文件可能有一行类似于“Zarko;Gajic;;DelphiGuide”,您希望使用分号“;”作为分隔符将该行解析为4行(字符串)“Zarko”、“Gajic”、“空字符串”)和“DelphiGuide”。
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',';')
...p解析的关键区别在于,top-down解析执行从起始符号到输入字符串的解析,而bottom-down解析执行从输入字符串到起始符号的解析。此外,自顶向下和自底向上解析的另一个重要区别是,自顶向下的解析使用最左边的派生,而自下而...
...I want you to add\”\“”)输出:I want you to add“”\不打断字符串以从下一行开始打印(“这是一行\n这是第二行”)输出:这是一条线这是第二条线def function\u name(参数):命令使用可选参数初始化函数def yourName(x):打印(x+1...
...上一级,然后又回到另一个目录。 cd ../gc_help /路径目录分隔符 您可以使用正斜杠(/)—通常称为斜杠来分隔路径名中的目录。 ls ~/work/archive 一个正斜杠表示可能的最短目录路径。由于Linux目录树中的所有内容都从根目录开始...
...。它的目的是什么?是否有指向列出二进制文件中可打印字符串的命令的点? 让我们后退一步。诸如程序文件之类的二进制文件可以包含人类可读文本的字符串。但是你怎么才能看到他们呢?如果你使用cat或更少,你很可能会...
...主要区别在于数组可以具有任何长度的任何数据类型,而字符串通常是以空字符“\0”结尾的ASCII字符。两者在不同编程语言中的实现方式都有很大的不同。数组和字符串在java中的工作方式与C++中的工作方式非常不同。本文介绍...
...。它是.NET框架的一部分。它允许编写简单高效的程序。字符串是具有字符序列的数据类型。在编程中,需要对字符串进行处理。有多种方法可以将字符串转换为整数。其中两个是通过使用int.Parse和Convert to int32实现的。 覆盖的关...