Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];

Вниз

Как записать тип шрифта в БД   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.017 c
1-40383
lovres
2003-10-01 10:53
2003.10.13
Подскажите простой бесплатный компонент для экспорта в Excel .


14-40640
Дмитрий
2003-09-23 08:56
2003.10.13
Восстановление винчестера


3-40249
Rider
2003-09-23 14:52
2003.10.13
фильтрация в базе по дататайму


3-40305
Виталий Панасенко
2003-09-22 09:17
2003.10.13
Работа с XML


7-40709
Kikimora
2003-07-31 23:34
2003.10.13
com порт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский