extractquote.pp 978 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // test AnsiExtractQuotedStr
  2. {$mode delphi}
  3. Uses Strings,SysUtils;
  4. var testok : boolean;
  5. procedure dotest(str,val2,val3:string);
  6. var p: pchar;
  7. s2:string;
  8. b: boolean;
  9. begin
  10. Write('testing: *',str,'*: ');
  11. p:=pchar(Str);
  12. b:=true;
  13. s2:=AnsiExtractQuotedStr( p, '"' );
  14. if s2<>val2 then
  15. begin
  16. write(' return value wrong:*',s2,'*');
  17. b:=false;
  18. end;
  19. if ansistring(p)<>val3 then
  20. begin
  21. write(' left in str wrong:*',ansistring(p),'*');
  22. b:=false;
  23. end;
  24. if b then writeln('ok') else begin testok:=false; writeln; end;
  25. end;
  26. var str : string;
  27. p : pchar;
  28. begin
  29. testok:=true;
  30. dotest('"test1""test2"','test1"test2','');
  31. dotest('"test1" "test2"','test1',' "test2"');
  32. dotest('"test1 test2"','test1 test2','');
  33. dotest('"test1 test2','test1 test2','');
  34. dotest('','','');
  35. dotest('"','','');
  36. dotest('""','','');
  37. dotest('"x"','x',''); // one char only case.
  38. if testok then halt(0) else halt(1);
  39. end.