Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > кавычка в строке


Автор: artem1987 14.6.2007, 14:20
собственно нужно чтобы в строке были кавычки, как это сделать знает кто?

Автор: Rodman 14.6.2007, 14:27
Код

var f :String;
begin
  f:='sada ''asdasdsdas';
  ShowMessage(f);
  f:='sada "asdasdsdas';
  ShowMessage(f);

Автор: Snowy 14.6.2007, 14:30
Цитата(artem1987 @  14.6.2007,  14:20 Найти цитируемый пост)
нужно чтобы в строке были кавычки, как это сделать
Возьми строку и вставь кавычки.
В чём проблема-то?!

Автор: 0LineGate 14.6.2007, 14:31
вместо символа ' используй комбинацию '+chr(39)+'  smile 

Автор: artem1987 14.6.2007, 14:32
извините я имел ввиду апостроф : 
чтобы компилятор понял сто внутри строки стоит апостроф и вывел его как символ

Автор: 0LineGate 14.6.2007, 14:35
прочти мой предыдущий пост, используй комбинацию 
Код

'+chr(39)+'

Автор: Fiyanov 14.6.2007, 14:39
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
caption:=' '''' ';
end;

Автор: artem1987 14.6.2007, 14:42
char(39) от что надо

Автор: Snowy 14.6.2007, 14:43
0LineGate, круто.
Сразу видно - это апостроф! Никаких сомнений!
Осталось только перекодировку из юникода добавить и вообще всем сразу код станет понятным...
Но самые крутые программеры делают ещё круче: пишут функции с интегралами от косинуса случайных значений, и перебирают, пока не получится кавычка! И потом её возвращают как char. Остаётся только подставить её в строку...

ЗЫ. Во всех языках кавычки добавляются банальным сдваиванием.

Добавлено через 1 минуту и 14 секунд
artem1987, конечно! Это гораздо круче, чем решение данное в первом же ответе!
Это по нашему - по кулхацкерски!
И главное гораздо понятнее код стал, правда?

Автор: Fiyanov 14.6.2007, 14:46
Цитата

artem1987, конечно! Это гораздо круче, чем решение данное в первом же ответе!
Это по нашему - по кулхацкерски!
И главное гораздо понятнее код стал, правда? 


Согласен!  artem1987, Через неделю не вспомниш чё сам написал.

Автор: 0LineGate 14.6.2007, 14:48
Snowy, лично мне так быстрее/удобнее/проще...  предложил тот способ который считаю действенным... И мне не важно как он выглядит, кму нужна опрятность кода? преподу? или как? у каждого своё восприятие, и ненадо поалуйста навязывать своё мнение другим, задали вопрос - я ответил, есть какие претензии?..

artem1987, а по репе?  smile 

Автор: Rennigth 14.6.2007, 14:57
 smile 
Цитата(0LineGate @  14.6.2007,  14:48 Найти цитируемый пост)
кму нужна опрятность кода? преподу? или как? 

1. Как минимум тебе самому, потому что самже потом будешь голову ломать что понаписал. 
2. Тому кто после тебя будет код править, что программерам очень часто приходиться делать, и честное слово, когда смотришь на код который писали тяп-ляп опускаются руки и все что остается делать это Ctrl+A -> Del -> Пишешь все звново.





Автор: 0LineGate 14.6.2007, 15:10
давайте претим этот разговор!  smile 

1) я ещё раз повторю что я прекрасно ориентируюсь в своём коде (комменты руляд, ога)
2) а мой код за мной никто и никогда не переписывает...
просто непойму откуда столько негативизма... человек предложил РАБОЧЕЕ решение, и на него все напинулись.... круто, да?

Просьба к модераторам: тему закрыть т.к. вопрос решён, а также воизбежание оффтопа....

Автор: aktuba 14.6.2007, 16:42
Цитата

а мой код за мной никто и никогда не переписывает...


Не дай бог с тобой вместе работать... Если ты аппостроф заменяешь на эту лабуду, то представляю, что у тебя в коде твориться... Жэсть...

Добавлено через 3 минуты и 31 секунду
Цитата

человек предложил РАБОЧЕЕ решение


Это не рабочее решение - это мазохизм крайней степени тяжести... Диагноз так сказать. Рабочее решение показали в самом начале:
Код

var f :String;
begin
  f:='sada ''asdasdsdas';
  ShowMessage(f);
  f:='sada "asdasdsdas';
  ShowMessage(f);


Как думаешь, что понятнее:
Код

lStr := ''' Test ''';


или

Код

lStr := Chr(39) + ' Test ' + Chr(39);


Подскажу - для нормальных людей (да и не очень нормальных =),  первое проще и понятнее. Второе - диагноз...  smile 

Автор: Rennigth 14.6.2007, 17:03
Ну ладно вам уж так. Вы же сами наверника не всегда применяете например вместо #13#10 константу LineBreak или вместо 27 VK_ESCAPE. Не такуй уж и грех. Настораживает только вот это
Цитата(0LineGate @  14.6.2007,  14:48 Найти цитируемый пост)
кму нужна опрятность кода?

 smile 


Автор: 0LineGate 14.6.2007, 17:50
Цитата(Rennigth @ 14.6.2007,  17:03)
Не такуй уж и грех. Настораживает только вот это
Цитата(0LineGate @  14.6.2007,  14:48 Найти цитируемый пост)
кму нужна опрятность кода?

ну я не имел ввиду что код одолжен быть бессмысленный и неопрятный полностью, имхо допустимы отклонения от педантичного написания кода... и chr(39)  по сути ничего не меняет...  smile 

Автор: aktuba 14.6.2007, 18:01
Цитата

Ну ладно вам уж так. Вы же сами наверника не всегда применяете например вместо #13#10 константу LineBreak или вместо 27 VK_ESCAPE. Не такуй уж и грех. Настораживает только вот это


Дело то совсем не в этом. Проблема в том, что человек пытается научить другого неправильно программировать!!! Да, можно все строки написать так:
Код

lStr := #65#66#67#68#69;

но сомневаюсь, чтобы так кто-то поступал, а тем более учил подобному... Так и тут - дважды был дан нормальный правильный ответ, так он все-равно настаивает, что его вариант правильный!!! Ну нравиться самому - используй и никому не показывай!!! Тем более - новичкам!!!

Цитата

и chr(39)  по сути ничего не меняет... 


Меняет! Сильно меняет!!! Этим ты уже другого учишь неправильному!!! Прочти все, что я написал выше...

Автор: Alexeis 14.6.2007, 18:15
Цитата(aktuba @  14.6.2007,  18:01 Найти цитируемый пост)
Этим ты уже другого учишь неправильному!!! Прочти все, что я написал выше...

  Полностью согласен, прозрачность лишней не бывает. На этом тему закрываю. Старайтесь быть взаимновежливыми и не переходить на ругань.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)