ExtractStrings 함수는 참 편하긴한데 따옴표들과 엮이면 골치 아프다.
예를 들어 쌍따옴표를 만나면 다음 쌍따옴표가 나올 때까지 자르지를 않는다던가...(정확한지는 모르겠다)
여하튼 고생하다가 그냥 치환해버리는 방법을 사용했다.
아래처럼.

procedure TForm1.Button1Click(Sender: TObject);
var
  스트링: String;
  sList: TStringList;
  i: Integer;

begin
  sList:=TStringList.Create;
  try
    // '스트링'에 막 따옴표가 뒤죽박죽된 문자열이 들어있다고 가정하고...
    // 치환
    스트링:=StringReplace(스트링, '''', Chr(4), [rfReplaceAll]);
    스트링:=StringReplace(스트링, '"', Chr(5), [rfReplaceAll]);
    // Extract
    ExtractStrings(['$'], [], PWideChar(스트링), sList);

    for i:=0 to sList.Count-1 do begin
      // 재치환
      sList[i]:=StringReplace(sList[i], Chr(4), '''', [rfReplaceAll]);
      sList[i]:=StringReplace(sList[i], Chr(5), '"', [rfReplaceAll]);
      Memo1.Lines.Add(IntToStr(i)+' :: '+sList[i]);
    end;
  finally
    FreeAndNil(sList);
  end;
end;
Posted by bloodguy
,