Delphi在字符串列表之间提取文本
我需要从字符串列表中提取文本?这工作得非常好,因此此提取仅来自字符串。我需要从Tmemo中的列表中提取 谢谢Delphi在字符串列表之间提取文本,delphi,extract,Delphi,Extract,我需要从字符串列表中提取文本?这工作得非常好,因此此提取仅来自字符串。我需要从Tmemo中的列表中提取 谢谢 function ExtractTextBetween(const Input, Delim1, Delim2: string): string; var aPos, bPos: Integer; begin result := ''; aPos := Pos(Delim1, Input); if aPos > 0 then begin bPos := Po
function ExtractTextBetween(const Input, Delim1, Delim2: string): string;
var
aPos, bPos: Integer;
begin
result := '';
aPos := Pos(Delim1, Input);
if aPos > 0 then begin
bPos := PosEx(Delim2, Input, aPos + Length(Delim1));
if bPos > 0 then begin
result := Copy(Input, aPos + Length(Delim1), bPos - (aPos + Length(Delim1)));
end;
end;
end;
不明白为什么不适当划界,我只需要提取电子邮件 示例字符串 “电子邮件”:xxxx@xxxx.xom“,”上限“:”00000“ 结果 xxxx@xxxx.xom“,”帽
不清楚你想要什么。是否要提取
TMemo
中每行的文本?那么你希望结果是什么,也许是一个TStringList
?TMemo
有一个Lines
属性,所以只需迭代这些属性,并使用现有函数为每个属性提取。将它们添加到TStringList
。除非你想要不同的东西,否则你需要解释更多。除了@Lougler说的,如果你想从备忘录的全文中提取,你可以使用TMemo.Lines.text
属性。如果您想访问单个行,请像使用数组一样使用TMemo.lines
。您是否考虑过其他注释中提供的内容?这里有很多东西可以帮助您入门。您的输入是什么样子的?您需要知道如何编写循环吗?似乎您正在尝试手动解析JSON。绝对不是个好主意。您可以使用JSON库,包括Delphi内置的JSON库。不管怎样,我看不出这是如何回答你的问题的。长话短说,如果你在9小时前提出问题时选择使用一个合适的JSON库,那么你现在已经远远超过了这个问题。JSON不是基于换行符的格式,整个JSON可以在一行中,或者您可能期望的是一行实际上可能有5行空行。
memo3.Lines.AddStrings(ExtractText(memo2.Text,',"email":"','",')) ;
function ExtractText(const Str: string; const Delim1, Delim2: string): TStringList;
var
c,pos1, pos2: integer;
begin
result:=TStringList.Create;
c:=1;
pos1:=1;
while pos1>0 do
begin
pos1 := PosEx(Delim1, Str,c);
if pos1 > 0 then begin
pos2 := PosEx(Delim2, Str, pos1+1);
if pos2 > 0 then
result.Add(Copy(Str, pos1 + length(delim1), pos2 - (length(delim2) + pos1)));
c:=pos1+1;
end;
end;