<div dir="ltr"><div><div>Hello,</div><div><br></div><div>Conforms issue #16043:</div><div><br></div><div>"<span style="background-color:rgb(232,232,232);color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">ExtractStrings in the Classes unit skips over empty text. For example:</span></div>

<br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">"AAA,BBB,,CCC"</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">is converted to:</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">"AAA"</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">"BBB"</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">"CCC"</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">I was expecting:</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">"AAA"</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">"BBB"</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">""</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">"CCC"</span><br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)">

<br style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;background-color:rgb(232,232,232)"><div><span style="background-color:rgb(232,232,232);color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">Is this the intended behavior, or is it a bug?</span>".</div>

</div><div><br></div><div>So, if I try:</div><div><br></div><div><div>procedure TForm1.Button1Click(Sender: TObject);</div><div>var</div><div>  s: TStringList;</div><div>begin</div><div>  s := TStringList.Create;</div><div>

  try</div><div>    s.StrictDelimiter := True;</div><div>    s.Delimiter := '|';</div><div>    ExtractStrings(['|'], [], 'A|B||C', s);</div><div>    ShowMessage(IntToStr(s.Count));</div><div>  finally</div>

<div>    s.Free;</div><div>  end;</div><div>end;</div></div><div><br></div><div>It returns 3. But, if I try:</div><div><br></div><div><div>procedure TForm1.Button2Click(Sender: TObject);</div><div>var</div><div>  s: TStringList;</div>

<div>begin</div><div>  s := TStringList.Create;</div><div>  try</div><div>    s.StrictDelimiter := True;</div><div>    s.Delimiter := '|';</div><div>    s.DelimitedText := 'A|B||C';</div><div>    ShowMessage(IntToStr(s.Count));</div>

<div>  finally</div><div>    s.Free;</div><div>  end;</div><div>end;</div></div><div><br></div><div>It returns 4.</div><div><br></div><div>How to configure ExtractStrings to works without skip empty strings like DelimitedText?</div>

<div><br></div><div>Thank you!</div><div><br></div>-- <br>Silvio Clécio<br>My public projects - <a href="http://github.com/silvioprog" target="_blank">github.com/silvioprog</a>
</div>