Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как программно изменить ширину столбца html 
:(
    Опции темы
Llucas
Дата 2.10.2007, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 29.11.2006
Где: Одесса

Репутация: нет
Всего: нет



Добрый день, столкнулся с проблемой. На С++ обычно не пишу, но тут есть задача, которую надо решать именно на этом языке. Существуют ли какие-то способы программного изменения ширины столбца html-документа. Т.е. мне надо получить строку, и в зависимости от размера этой строки выбирать ширину столбца, для этого в программе менять ширину этого столбца динамически...Как это сделать? Спасибо.
PM MAIL WWW   Вверх
Rapalex
Дата 2.10.2007, 10:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: нет
Всего: 8



Напиши свой браузер  smile 


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
comcon1
Дата 2.10.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



ээ, почему C++? CGI, типа? - так это в другом разделе обсуждают. И проще PHP ваще.
че-нить типа такого:
Код

<td width="<?=func(length($str));?>"><?=$str;?></td>

ваще есть такой динамический шаблон-креатор smarty, которая считает тебе кол-во строк, кол-во слов и символов в абзаце. Для верстки удобнее с ней, наверное, хотя я этими фичами не пользовался, но саму smarty активно юзаю.

В любом случае тебе в WEB-раздел.


--------------------
PM MAIL   Вверх
akizelokro
Дата 2.10.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



В php удобней, ахха.
А каким образом ты html формируешь? В CGI на лету?
Тогда примерно так (почесал в затылке)

char * content;

....

char * text_of_cell = "Something else";
strcat(content,"<td width=");
sprintf(content+strlen(content),"%d",strlen(text_of_cell));
strcat(content,">");
strcat(content,text_of_cell);
strcat(content,"</td>");

(на правах примерного решения).

Видишь, как муторно?
Лучше надыбать специализированную библиотеку или написать свою.


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
maxim1000
Дата 2.10.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



ну раз уж на C++, то, конечно же, можно попроще, чем со всякими strcat:
Код

std::cout<<"<table width\""<<WidthCalculatingFunction(str)<<"\">";




--------------------
qqq
PM WWW   Вверх
akizelokro
Дата 3.10.2007, 07:09 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



или 

Код

printf("%s%d%s","<td width=",strlen(text_of_cell),">");


Код

std::cout<<"<table width\""<<WidthCalculatingFunction(str)<<"\">";


обрати внимание, что во-первых на С писать короче smile , чем на С++, а во-вторых, std::... утяжеляет код (почесал в затылке) и чутка подсаживает скорость работы. Если скорость некритична (это-то на CGI?!), то проще подкачать специализированную либу.

 smile Я в последнее время удивляюсь: железо постоянно "разгоняется", а программы быстрее не работают. Парадокс!

Это сообщение отредактировал(а) akizelokro - 3.10.2007, 07:11


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
zkv
Дата 3.10.2007, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(akizelokro @  3.10.2007,  07:09 Найти цитируемый пост)
обрати внимание, что во-первых на С писать короче smile , чем на С++

всегда ли?  smile 
зато на С++ писать понятнее и безопаснее  smile 
Цитата(akizelokro @  3.10.2007,  07:09 Найти цитируемый пост)
std::... утяжеляет код

 smile как пространство имен умудряется утяжелять код?
собрал одну и туже прогу с printf и cout, размер ехешника 1:1...
PM MAIL   Вверх
akizelokro
Дата 3.10.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата

собрал одну и туже прогу с printf и cout, размер ехешника 1:1... 


Сделал то же самое. Пример с printf  и strlen 168кил, с std::cout - 516кил (VC++ 6.0, Win32 Console Application, Debug). Ничего себе 1:1 smile 
Когда в первом варианте компилишь, отключи все stl-вские хедеры. smile 

Цитата

зато на С++ писать понятнее и безопаснее

Тоже не всегда и не у всех, факт smile .
Главное - задача. Программирование CGI - вещь достаточно требовательная. И здесь на первый план выходит не соображение удобства, а соображение как оно быстро будет работать.

Кстати, если ставить во главу угла соображения удобства, то сразу лучше перейти на PHP. Мало того, что язык заточен под формирование HTML (удобно), так и нагружает всего на 10-20% по сравнению с С (но не с последовательным С++подходом, красивые и нужные слова "парадигма", "инкапсуляция", "наследование" порой стоят очень дорого).

Цитата

Тоже не всегда и не у всех, факт smile 

Особенно, как я пишу. smile (самокритично. пусть говорят плохо, лишь бы только обо мне, любимом и ужасном.

Это сообщение отредактировал(а) akizelokro - 3.10.2007, 09:20


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
Daevaorn
Дата 3.10.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(akizelokro @  3.10.2007,  10:10 Найти цитируемый пост)
(но не с последовательным С++подходом, красивые и нужные слова "парадигма", "инкапсуляция", "наследование" порой стоят очень дорого).

а в php их нет?
PM MAIL WWW   Вверх
akizelokro
Дата 3.10.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата

а в php их нет?


Не знаю, но как-то прекрасно обходился и без них (почесал в затылке).
Зато есть регулярные выражения


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
Daevaorn
Дата 3.10.2007, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(akizelokro @  3.10.2007,  10:29 Найти цитируемый пост)
Не знаю, но как-то прекрасно обходился и без них (почесал в затылке).

ну то что ты обходился, это ещё ни о чем не говорит.
Цитата(akizelokro @  3.10.2007,  10:29 Найти цитируемый пост)
Зато есть регулярные выражения 

где их сейчас нет?
PM MAIL WWW   Вверх
akizelokro
Дата 3.10.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата

ну то что ты обходился, это ещё ни о чем не говорит.

говорит. о том, что не было достаточно сложных задач, чтобы разбираться с ООП в PHP. Была обычная рутина,- подрубиться к базе данных, сделать запрос, обработать результат, сформировать html.

Цитата

где их сейчас нет? 

Другой вопрос. И здесь опять - цена вопроса. Если я запускаю раз в день программу у себя на компе, то инстальну boost (они там есть). Предположу, что я могу и для работы в С++ закачать либу или написать свою, так что она не будет слишком грузной и "выплюнет" html-ину быстрее PHP (но не С-шника). Но это все равно не стандарт, что плохо.


Это сообщение отредактировал(а) akizelokro - 3.10.2007, 09:52


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
Daevaorn
Дата 3.10.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(akizelokro @  3.10.2007,  10:48 Найти цитируемый пост)
говорит. о том, что не было достаточно сложных задач, чтобы разбираться с ООП в PHP. Была обычная рутина,- подрубиться к базе данных, сделать запрос, обработать результат, сформировать html.

ну так и на С++ можно писать без " "инкапсуляция", "наследование" "
PM MAIL WWW   Вверх
akizelokro
Дата 3.10.2007, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата

ну так и на С++ можно писать без " "инкапсуляция", "наследование" 


Где я писал
Цитата

но не с последовательным С++подходом, красивые и нужные слова "парадигма", "инкапсуляция", "наследование" порой стоят очень дорого

мною подразумевался С-шный стиль с его процедурным программированием, который можно реализовать и с помощью С++ компилятора, слава богу. Я, конечно, любитель пофлудить (перед собой я честен), но в теме есть задача, достаточно рутинная. Я попытался дать ответ на вопрос (насколько я могу это сделать). Если я предлагаю (или не предлагаю решение c помощью stl библиотеки), то я постарался аргументировать, почему это не очень хорошо. Как альтернативу использованию stl я предложил помимо простого printf еще два варианта (PHP или некая С++ либа, заточенная под html). А сейчас у нас ни к чему не обязывающий разговор на общие темы. Ну, ты круче. И что?


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
Daevaorn
Дата 3.10.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(akizelokro @  3.10.2007,  11:36 Найти цитируемый пост)
Если я предлагаю (или не предлагаю решение c помощью stl библиотеки), то я постарался аргументировать, почему это не очень хорошо. 

это аргумент?
Цитата(akizelokro @  3.10.2007,  10:10 Найти цитируемый пост)
Пример с printf  и strlen 168кил, с std::cout - 516кил (VC++ 6.0, Win32 Console Application, Debug)

если и так, то не убедителен.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0592 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.