在Delphi中提取引号之间的文本

时间:2018-10-04 06:22:51

标签: delphi

我有一些这样的文本文件:

proc p0
ans12=2
do while ans12#1
  * set print to "lp -dACCPRN"
   clos data
   @0,0 clea
   @3,36,21,65 box
   @3,4,21,32  box
   @4 ,40 prom '                0šø¤‹‹¡ ' &&1
   @6 ,40 prom '                ù‹ê‘‹® ' &&2
   @7 ,40 prom '  –‘“¨‘Ÿõ ¤÷–‘Ÿþ®ø—¢ø¤ø ' &&3
   @8 ,40 prom '               ù¢û‘‹‹ªõ ' &&4
   @9 ,40 prom '                žò‹‹‹¬ ' &&5

现在我需要搜索所有文本文件并提取引号之间的文本

结果将是:

'                0šø¤‹‹¡ '
'                ù‹ê‘‹® '
'  –‘“¨‘Ÿõ ¤÷–‘Ÿþ®ø—¢ø¤ø '
'               ù¢û‘‹‹ªõ '
'                žò‹‹‹¬ '

1 个答案:

答案 0 :(得分:3)

您可以使用函数从每一行中滤除引用的文本:

function TextBetweenQuotes( const s : String; quoteChar : Char) : String;
var
  p,p1 : Integer;
begin
  Result := '';
  p := Pos(quoteChar,s);  // Find first quote char
  if p > 0 then begin
    p1 := Pos(quoteChar,s,p+1); // find second quote char
    if p1 > 0 then begin
      Result := Copy(s,p,p1-p+1);  // Copy text between quotes, including quotes
    end;
  end;
end;

如果您使用的是较旧的Delphi版本,该版本在Pos()函数中不支持可选的offset参数,请改用StrUtils.PosEx()

相关问题