Как экранировать символы в строке Delphi?

34

В строках Delphi используются одинарные кавычки, например "допустимая строка". Как указать символ в литеральной строке? Как обращаться к нулевому байту (кодовая UIC0000)?

Теги:
string
escaping
literals

3 ответа

45
Лучший ответ

Чтобы добавить одну цитату в строку, вы включаете 2 'метки, например.

str := '''test string''';
Writeln(str)

В приведенной выше строке у вас есть обычная одинарная кавычка, чтобы начать строку, а затем две для одной кавычки. То же самое касается конца строки.

Вы также можете использовать #, за которым следует номер для другого escape-символа, например.
Для новой строки:

str := 'Newline' + #13 + #10 

или просто

str := 'Newline'#13#10

Конечно, использование константы, зависящей от платформы для новой строки, лучше.

  • 0
    Единственная проблема с # 13 # 10 заключается в том, что компилятор выдаст предупреждение, если + отсутствуют. Он будет компилироваться и работать нормально, но с предупреждениями.
  • 3
    Когда компилятор начал выдавать предупреждения об этом? Я знаю, что в Delphi 5 этого не произошло, и я почти уверен, что в Delphi 2005 этого не происходит. Какое предупреждение печатает сейчас?
Показать ещё 1 комментарий
13

Чтобы ответить на последнюю часть вопроса, вы можете использовать

#$0000   

Чтобы добавить U + 0000

Таким образом вы можете добавить другие символы Unicode. (Обязательно используйте шрифт, который может отображать эти символы.)

  • 2
    Вы также можете использовать #0 вместо этого.
7

Для символа ' введите его дважды. Например: 'Don''t'. Тип нулевого байта как # 0.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню