Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Результаты опроса: какой выбрать
035) * 0 0%
038) & 0 0%
042) # 1 14.29%
0133) … 1 14.29%
0149) • 2 28.57%
0177) ± 1 14.29%
0182) ¶ 1 14.29%
0183) · 0 0%
другой 2 28.57%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 7. Вы ещё не голосовали в этом опросе

 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
говнокодер
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
1

Спецсимвол

30.11.2010, 19:08. Показов 2571. Ответов 6

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане, столкнулся с небольшим.. хм.. вопросом... Дело в том, что у меня одна программа (скажем чат.. или текстовый редактор.. в общем пропускает большой объем текстовой информации, с различными символами) использует спецсимволы для выделения внутренних команд.. например,
Код
$command$
где $ - понятное дело, тот самый спецсимвол.. Строки с вхождением команд, обрабатываются прогой иначе, чем без вхождения, отсюда следует вопрос... какой символ лучше использовать для выделения команд... Ясно как день что $, в этих целях непригоден, ибо довольно часто используется.. для опроса я составил небольшую выборку, на мой, чисто субъективный, взгляд наиболее подходящих символов...
Может у кого есть опыт, подскажите по вопросу... ну или кому че больше нравится... чето никак не могу с такой мелочью определиться.

з.ы.: Этот спецсимвол будет запрещен для ввода в прогу...
з.з.ы: Кстати я думаю использовать все же комбинацию спецсимволов... но вот каких?!
варианты
0176) °
0177) ±
0182) ¶
0183) ·
0149) •
0133) …
038) &
035) *
042) #
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2010, 19:08
Ответы с готовыми решениями:

Какой спецсимвол отвечает за пробел?
Какой спецсимвол отвечает за пробел?

Спецсимвол в качестве строки
Однострочник принимает в stdin строку с табами в качестве разделителей. Если первый символ '@',...

Спецсимвол N в SQL-запросе
Добрый день! Помогите понять один момент. Есть простенький запросик: SELECT * FROM...

Не отображается спецсимвол в XHTML-файле
Всем привет! Столкнулся со странной проблемой. Есть .xhtml файл со следующим содержимым: ...

6
Эксперт С++
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
30.11.2010, 20:14 2
Голосование оставим на потом...
Всё же, хотелось бы услышать принцип построения программы.
Как вы представляете "текст"? ANSI ? Unicode?

Если представление однобайтовое (char), то почему бы не использовать символы из Extended ASCII?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//---------------------------------------------------------------------------
#include <iostream>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
  for (int i = 128; i < 256; i++) {
    std::cout << char(i) << " has code: " << i << std::endl;
  }
 
  std::cout << std::endl;
  std::system("pause");
  return 0;
}
//---------------------------------------------------------------------------
Как говорится: "Выбирай - не хочу"
Я думаю, никому не придёт в голову то, что последовательность "╬══╬" будет считаться управляющей.

То же самое и с двухбайтовым представлением (wchar_t). Только в данном случае, выбор данных символов ещё больше.
1
518 / 306 / 58
Регистрация: 30.07.2008
Сообщений: 607
30.11.2010, 20:24 3
1) нужен непечатный (такой, который просто так не попадется) символ ($, @, # итд - не подходят)

"°, ±, ¶, ·, •, …" - неплохие, только еще встретится может часто ° и ±

2) ну да, лучше комбинацию например "®•…©" (или мне нравится еще ctrl+backspace в блокноте выглядит как квадрат)
1
Эксперт С++
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
30.11.2010, 20:26 4
Цитата Сообщение от Gremlin Посмотреть сообщение
2) ну да, лучше комбинацию например "®¬©" (или мне нравится еще ctrl+backspace в блокноте выглядит как квадрат)
Если не ошибаюсь, то это годится только при двухбайтовом представлении.
0
518 / 306 / 58
Регистрация: 30.07.2008
Сообщений: 607
30.11.2010, 20:34 5
MikeSoft, ну яж образно... каждый для себя сам выбирает
а вообще любое может в тексте попасться (даже MD5 не уникален, 16^32 вроде)
0
Эксперт С++
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
30.11.2010, 20:44 6
Цитата Сообщение от Gremlin Посмотреть сообщение
MikeSoft, ну яж образно... каждый для себя сам выбирает
Не-не, вы меня немножко неправильно поняли.
Приведённые вами символы просто будут неправильно преобразованы и не смогут быть отображены при однобайтовом представлении.

Для примера, попробуйте выполнить этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//---------------------------------------------------------------------------
#include <iostream>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
  std::cout << "Signed char:         " << int((char)('™')) << std::endl;
  std::cout << "Signed wchar_t       " << int(wchar_t('™')) << std::endl;
  std::cout << std::endl;
  std::cout << "Unsigned char:       " << (unsigned int)((char)('™')) << std::endl;
  std::cout << "Unsigned wchar_t:    " << (unsigned int)(wchar_t('™')) << std::endl;
  std::cout << std::endl;
 
  std::system("pause");
  return 0;
}
//---------------------------------------------------------------------------
0
говнокодер
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
30.11.2010, 22:27  [ТС] 7
Цитата Сообщение от MikeSoft Посмотреть сообщение
Голосование оставим на потом...
Всё же, хотелось бы услышать принцип построения программы.
Как вы представляете "текст"? ANSI ? Unicode?
я использую Ansi - строки.. ну и соответственно компоненты мемо, едит... ну стандартно в общем.. хм.. посему ╬══╬ и - не подойдут ... ибо первое у нас, скажем в Едит1 отобразится как ????, а второе как □... конечно будь иначе все было бы проще =) ☺☻♥♦♣♠ и т.д. =)
0
30.11.2010, 22:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2010, 22:27
Помогаю со студенческими работами здесь

Как экранировать спецсимвол & ?
Как экранировать спецсимвол &amp; ? всяко разно пробовал ничего не вышло..... Здесь смотрел и в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru