Текущий архив: 2003.10.13;
Скачать: CL | DM;
ВнизКак записать тип шрифта в БД Найти похожие ветки
← →
Dmitriy O. (2003-09-18 13:38) [0]Есть тип шрифта в RichEdit -> RichEdit1.SelAttributes.Style;
Нужно его записать в поле БД типа data.TslovoFormat.Value , а потом востановить. Как это зделать каков должен быть тип поля. База данных Парадокс.
← →
Юрий Зотов (2003-09-18 14:08) [1]> Dmitriy O. © (18.09.03 13:38)
Дмитрий, помнится, Вы как-то доказывали, что прикладному программисту на языке высокого уровня знание нулей и единиц не обязательно?
Между прочим, Ваш вопрос именно из этой серии. Отвечаю сразу - это должно быть целое поле, причем достаточно одного байта (еще точнее, достаточно было бы даже и полбайта).
Вот откуда это вытекает (выдержка из справки):
type
TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);
TFontStyles = set of TFontStyle;
property Style: TFontStyles;
Этой информации вполне достаточно, чтобы решить задачу. А вот как именно - подумайте сами. Полагаю, после этого Ваше мнение по поводу нулей и единиц несколько изменится. Возможно, и не только по этому поводу.
← →
Reindeer Moss Eater (2003-09-18 14:14) [2]Про нули и единицы знать ничего не надо если есть компонент TСохранятельШрифтаВТаблицуПарадокса
:)
← →
Dmitriy O. (2003-09-18 14:57) [3]
> Reindeer Moss Eater © (18.09.03 14:14)
Лутше б дело сказал прикалываться и я могу.
> Юрий Зотов © (18.09.03 14:08)
Мда ответ конечно исчерпывающий но грешно смеятся над начинающими программистами. Не даром Подгорецкий опубликовал свои лекции для начинающих не здесь а в Королевстве.
Но с проблемой я всет разобрался мир не без добрых людей. :))
← →
Юрий Зотов (2003-09-18 20:51) [4]> Dmitriy O. © (18.09.03 14:57) [3]
> грешно смеятся над начинающими программистами
А разве Вы начинающий? Вы же сами говорили, что написали уже несколько хороших, реально используемых, серьезных программ и даже чуть ли не искусственный интеллект.
:о)
> Не даром Подгорецкий опубликовал свои лекции для начинающих
> не здесь а в Королевстве.
Теперь уже можно сказать... Возможно, Вы не в курсе, но, похоже, к этому приложил руку и я тоже.
> Но с проблемой я всет разобрался
И как же ТЕПЕРЬ насчет нулей и единиц? Что Вы ТЕПЕРЬ о них думаете?
А когда-нибудь позже, при аналогичном случае я Вас спрошу - и как же ТЕПЕРЬ насчет указателей? Что Вы ТЕПЕРЬ о них думаете?
И т.д. И т.п. А потом Вы поймете, что для каждого из нас всегда существуют вопросы, по которым нужно слушать, а не спорить. Иначе потом станет стыдно.
Если УЖЕ не поняли...
:о)
← →
Sandman25 (2003-09-19 10:37) [5]Самое ужасное, что задачу можно решить, не представляя себе, что такое байты, и даже не используя битовые операции :(
Result := 0;
for I := Ord(High(TFontStyle)) downto 0 do
Result := Result shl 1 or ord(TFontStyle(I) in Font.Style);
// Result := Result * 2 + ord(TFontStyle(I) in Font.Style);
Font.Style := [];
for I := 0 to Ord(High(TFontStyle)) do
begin
if Odd(Result) then
Font.Style := Font.Style + [TFontStyle(I)];
Result := Result shr 1;
// Result := Result div 2;
end;
← →
Юрий Зотов (2003-09-24 20:52) [6]> Sandman25 © (19.09.03 10:37) [5]
Вы считаете, что это самое ужасное? Знаете, а я считаю что еще ужаснее другое - это когда вот ТАКУЮ задачку начинают решать вот ТАКИМ кодом. Вместо того чтобы написать ОДНУ простейшую строчку (B - переменная типа byte, а FS - переменная типа TFontStyles):
FS := TFontStyles(B) - преобразование в одну сторону
B := Byte(FS) - преобразование в другую сторону
И все. Больше ничего не требуется.
Таким образом, Вы правы - задачу действительно можно решить без всяких побитовых операций (кстати, Вы их все же использовали). Возможно, Вы правы и в том, что ее можно решить, не зная ничего и о байтах тоже. Весь вопрос в том, КАК ее решать - в 10 строк, или в 2 строки. Используя дополнительные переменные, циклы и вызовы функций, или не используя НИЧЕГО, кроме присваивания. Плодя в коде ДЕСЯТКИ или даже СОТНИ машинных команд, или только ОДНУ команду MOVE.
А потом мы говорим о размере кода, о скорости работы программы, о пожираемых ею ресурсах... И еще мы говорим о том, что не зная бит и байт, мы сумели написали хорошую программу...
ЭТО - хорошая? Нет, ЭТО - плохая. ОЧЕНЬ плохая.
← →
kaif (2003-09-24 21:01) [7]Господа, а зачем вообще стиль из выделенной части текста в RechEdit в базу данных писать?
Может быть основную задачу поширше понять.
Может автор вопроса просто хочет сохранить текст RechEdit в базе данных? И для этого последовательно выделяет его и кусками сохраняет?...
Если это так, то проще сохранить весь отформатированный в RichEdit текст в поле типа BLOB. Тогда и биты анализировать не придется и все будут довольны...
← →
Anatoly Podgoretsky (2003-09-24 21:12) [8]Dmitriy O. © (18.09.03 14:57) [3]
Reindeer Moss Eater не прикалывается, он тебе правду сказал, только над названием компонента прикололся, но это же мелочь, не так ли.
Причины по которым я написал там, никакого отношения к данному сайту, точнее к его контингенту отношения не имеют, ты неверно их оценил, но если ты бы посмотрел описание семинара, то такого бы предположения даже и возникать не должно было. По той же причине я не стал публиковать и на сайте Блакмана, хотя процесс шел. Главное в самом сайте, он не менее известный чем этот, но его организация, очень подходящяя для такого класса статей, его направленность, его дизайн и структура, а также удобства для авторов семинаров, мне подошли больше, так что ты тут не прав.
Во введение отмечена роль данного сайта в организации подобного ресурса для начинающих.
Но не будем об этом, это за пределами данной темы.
Тебе дали несколько ответов, которые пригодны для решения данной задачи. Я же хочу добавить еще одно, как раз для "начинающих", допустим я ничего не знаю об устройстве множеств и о битах байтах, то тогда как начинающий я бы решал эту задачу так.
прошелся бы элементам множества и записал бы в текстовой форме с разделителями в одно или несколько полей.
Например
"BI" - Bold + Italic
или fsBold,fsItalic
или отдельные поля логического типа fsBold, fsItalic ...
то есть в зависимости от знаний, предпочтений, условий задачи я бы ее решил, даже спустя несколько дней с момента изучения языка. Да возможно я бы задал вопрос на форуме всесте со своими вариантами решений и попросил бы совета, какой выбрать, разробрать недостатки, предложить решение, но уж никак бы не стал наезжатать на совыты от других, вне зависимости от их формы, а попытался бы понять, почему мне так ответили.
И всем бы было хорошо и была бы польза, по крайней мере посмеялись бы вместе, а политика неприятия будет бить только по тебе.
ЗЫ: это не столько тебе, сколько и другим, когда они задают вопрос такого рода и не могут понять почему им так ответили, ну скажем так это один из уроков от АП :-)
Наджеюсь ты правильно поймешь почему я так подробно ответил тебе и именно на твоем вопросе, а если и не поймешь, то тоже не страшно.
← →
Anatoly Podgoretsky (2003-09-24 21:16) [9]kaif © (24.09.03 21:01) [7]
Это и есть предположение, что задача объяснена не четко, в таких случаях всегда надо рассказывать не только что хочешь сделать, но и зачем, в результате может быть получен ответ совсем другого качества, более подходчщее решение дял задаяи, чем просто ответ об преобразовании из множество в число размером до 32 бит.
← →
nikkie (2003-09-24 21:18) [10]вот это да!!! первый раз ТАКОЙ ответ от АП вижу :)))
← →
Anatoly Podgoretsky (2003-09-24 21:41) [11]nikkie © (24.09.03 21:18) [10]
Надо все сообщения читать :-)
Обычно редко по этому поводу высказываюсь (больше препираюсь), но уже выссказывался, ведь вопрос о вопросах и ответах задавался не раз и с обоих заинтересованных сторон.
← →
nikkie (2003-09-24 21:50) [12]все сообщения читать - это меня не хватит :)
может и пропустил, конечно... но интересно было бы проанализировать ответы по объему - этот наверное самым большим будет. и главное - все понятно, все по полочкам + 3 варианта решения поставленной задачи. :))
← →
Anatoly Podgoretsky (2003-09-24 21:53) [13]Предлагаю, если у кого есть желание в очередной раз обсудить тему о том, как задавать вопросы и как отвечать, завести отдельную ветку. Здесь же обсуждение касалось одного конкретного вопроса и ни как не общей сложившейся ситуации.
Далее буду резать, как обсуждение не по теме.
Страницы: 1 вся ветка
Текущий архив: 2003.10.13;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.011 c