Использование цитирования внутри строк в Delphi

Возможный дубликат:
Как избежать символов в строке Delphi

В Delphi строка содержится в паре ', но мне нужно использовать ' в моей строке... и когда я его использую, он заканчивает идентификацию всей строки.

'inside string ' but this bit is outside' inside again' and the end

Есть ли какой-нибудь символ, который удаляет эффект кодирования следующего символа?

Ответы

Ответ 1

Вам нужна еще одна цитата, чтобы избежать цитаты:

Writeln('I''m in your head'); //prints: I'm in your head
Writeln(''''); //prints: '

См. также этот вопрос.

Ответ 2

Delphi имеет функцию QuotedStr(), которая добавляет кавычки вокруг строки и автоматически экранирует апострофы в строке.

procedure MyForm.MyProc;
var str : string;
begin
  str = QuotedStr(MyForm.Edit1);
  ...
end;

QuotedStr() помещает содержимое поля редактирования в апострофы. Если поле редактирования содержит апострофы, они будут правильно экранированы.

Ответ 4

Обычно я использую функцию QuotedStr для исправления строк с кавычками в них. Кроме того, я часто считаю полезным определить такие константы, как CRLF и TAB, которые представляют #13#10 и #9 соответственно. Иногда мне кажется яснее (по крайней мере, мне) делать что-то похожее с кавычками.