2016-04-06 8 views
2

Я знаю функции QuotedStr, но есть аналогичная функция для двойной процитировать, напримерВ Delphi есть функция двойной кавычки?

for i := 0 to List.count - 1 do 
begin 
    List[i] := DoubleQuotedStr(List[i]); 
end; 
+0

Поиск. Если он существует, он находится в одном и том же месте. Если нет, писать не сложно. –

ответ

9

Вы можете использовать AnsiQuotedStr, который принимает кавычку:

List[i] := AnsiQuotedStr(List[i], '"'); 

Из documentation:

function AnsiQuotedStr(const S: string; Quote: Char): string; 

... .

Используйте AnsiQuotedStr для преобразования строки (S) в строку с кавычками, используя предоставленный символ Quote. Символ предложения вставляется в начале и в конце S, и каждый символ котировки в строке удваивается.

+1

Правильно ли это поддерживает Unicode? Кажется, это работает в моем ограниченном тестировании, но может ли байт кодовой точки неправильно интерпретироваться как двойная кавычка? – Alister

+1

Да, он поддерживает Unicode. Именование путается, но префикс Ansi означает, что он знает локаль. Это не особенно актуально для этой конкретной функции. Здесь нет байтов. Это UTF-16. Это два байта на элемент символа. Либо один, либо два символьных элемента на кодовую точку. –

+1

Например, прочитайте принятый ответ здесь: http://stackoverflow.com/questions/23444579/why-ansisametext-is-not-ansi –