Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 637
от 01.11.2006, 02:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 399, Экспертов: 69
В номере:Вопросов: 5, Ответов: 11


Вопрос № 60184: Эксперты среда разработки DELPHI. Надо написать программу которая считывала из файла все символы кодировала их по методу Хаффмана и сохраняла обратно. Есть у кого - нибудь алгоритм кодирования??...
Вопрос № 60206: Здравствуйте! Как преобразовать UTCTime в LocalTime, другими словами время по Гринвичу перевести на местное время (+6) к примеру, 25.10.2006 23.00.00 >>>> 26.10.2006 05.00.00. Буду рад любой помощи!...
Вопрос № 60232: Здравствуйте! Я считываю из таблицы Excel занчения и записываю из в ListBox. Как сделать следующее: если значение пустое(т.е. в ячейке Excel нет значения), то не заносить это значение в ListBox. Очень буду благодарна за подсказку.. ...
Вопрос № 60288: Планшет подключен к USB и от него нужно получить только информацию о координатах и не нужно, чтобы он управлял курсором вместе с мышью. При удалении драйвера, с планшетом нет никакой связи. Что делать? Написать новый драйвер, или можно получать данны...
Вопрос № 60290: Уважаемые программисты подскажите как вставить BMP изображение из ресурсного файла в копанент TDrawGrid или TImageList...

Вопрос № 60.184
Эксперты среда разработки DELPHI. Надо написать программу которая считывала из файла все символы кодировала их по методу Хаффмана и сохраняла обратно. Есть у кого - нибудь алгоритм кодирования??
Отправлен: 26.10.2006, 06:14
Вопрос задал: XBIT (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PaVeL_Ekt
Здравствуйте, XBIT!

А обязательно Вам использовать метод ХАФФМАНа ??? Ведь может проще взять и придумать свой алгоритм ???

Считывать все символы из файла можно с помощью процедуры BLOCKREAD,
Причем буффер можно использовать как и для одного символа так и копировать по, ну скажем 1024 байта.

Запись в файл производиться с помощью BLOCKWRITE

Для записи и считывания файла можно еще воспользоваться TFILESTREAM,
там запись, чтение производится функциями READBUFFER, WRITEBUFFER

в делфином хелпе про эти Функции хорошо описанно

А про кодирование, тут в принципе можно делать что угодно, можно изменять каждый байт файла на определенное значение допустим +10 и все, вот самое простое кодирование !!!

см. Пример

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 26.10.2006, 07:07
Оценка за ответ: 3
Комментарий оценки:
Я бы написал свое кодирование но тут задание курсового! Кодирование по Хафману и Архиватор хаффмана!


Вопрос № 60.206
Здравствуйте! Как преобразовать UTCTime в LocalTime, другими словами время по Гринвичу перевести на местное время (+6) к примеру, 25.10.2006 23.00.00 >>>> 26.10.2006 05.00.00. Буду рад любой помощи!
Отправлен: 26.10.2006, 10:42
Вопрос задал: Майтдинов Рашит (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mexes
Здравствуйте, Майтдинов Рашит!
Вот вариант преобразования с использованием TDateTime:

Приложение:

Ответ отправил: Mexes (статус: 4-ый класс)
Ответ отправлен: 26.10.2006, 11:34
Оценка за ответ: 5

Отвечает: PaVeL_Ekt
Здравствуйте, Майтдинов Рашит!

вообщем помоему самое простое, это взять и преобразовать часы, минуты и секунды в цифровое значение, а с цифрами можно делать что угодно, складывать вычитать !!! и тогда очень просто вычислить сколько добавлять минут, часов, дней.

В примере я написал программку которая прибавляет время и дни !!!
вычитание делается практически аналогично и поэтому это я оставил для тебя, но надеюсь принцип ты понял !!!

Примечание: UPDOWN.position смело меняй на нужные цифры.
Если нужно прибавлять к точному времени, то сперва преобразуй время в строку, затем обрабатывай (tme:=timetostr(time);)

УДАЧИ и УСПЕХОВ !!!

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 26.10.2006, 11:49
Оценка за ответ: 4

Отвечает: Bob Johnson
Здравствуйте, Майтдинов Рашит!
а что, прекрасные функции винды
FileTimeToLocalFileTime
LocalFileTimeToFileTime
SystemTimeToFileTime
FileTimeToSystemTime
уже не модно использовать? )
а вот делать так как сказал Mexes нельзя, потому что не учитывается переход на летнее и зимнее время.
Ответ отправил: Bob Johnson (статус: Академик)
Россия, Калуга
WWW: Программирование
----
Ответ отправлен: 28.10.2006, 02:43


Вопрос № 60.232
Здравствуйте!
Я считываю из таблицы Excel занчения и записываю из в ListBox. Как сделать следующее: если значение пустое(т.е. в ячейке Excel нет значения), то не заносить это значение в ListBox.
Очень буду благодарна за подсказку..
Отправлен: 26.10.2006, 14:14
Вопрос задала: Артемова Марина (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Артемова Марина!

А в чем сложность то?
Допустим, к ячейке Excel Вы обращаетесь так: Excel.Cell.Value.

Тогда проверяете так: if Excel.Cell.Value<>'' then {добавляем в листбокс}

Удачи!
---------
Ответы на все вопросы - на сайте www.ya.ru
Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 26.10.2006, 14:30

Отвечает: Mexes
Здравствуйте, Артемова Марина!

if not VarIsEmpty(Excel.Sheet.Range[...].Value) then //добавляем

Например, VarIsEmpty(Range['A1']) - пусто ли в ячейке A1
Ответ отправил: Mexes (статус: 4-ый класс)
Ответ отправлен: 26.10.2006, 14:41

Отвечает: PaVeL_Ekt
Здравствуйте, Артемова Марина!

вы можете проверить таким образом:

if TRIM(Строка полученная из ячейки Экселя)<>''(Прим. Это не двойная кавычка, это два апострофа) then
listbox1.items.add(Строка полученная из ячейки Экселя);

и все.
Функция TRIM отбрасывает пробелы спереди и позади строки, а по тому если строка с одними пробелами или пустая, то условие не выполняется и значение в листбокс не заноситься.

с компонентами примерно так:

If TRIM (EXCELAPPLICATION1.Range['A1', emptyparam].Value)<>'' then
ListBox1.Items.Append(EXCELAPPLICATION1.Range['A1', emptyparam].Value);

Эт должно работать !!!

УДАЧИ ВАМ МАРИНА !!!

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 26.10.2006, 14:59

Отвечает: FighterFJ13
Здравствуйте, Артемова Марина!
На скока я помню (щас не проверял), из ячейки читается строка. Значит, чтобы отслеживать пустые ячейки, надо отслеживать те, при считывании которых считалась строка <> (отличается) ''". Это условие должно стоять передзанесением в ListBox. Т.е. если условие выполняется, то заносим.
Ответ отправил: FighterFJ13 (статус: 2-ой класс)
Ответ отправлен: 26.10.2006, 20:20

Отвечает: Monah
Здравствуйте, Артемова Марина!
var s: string
Добавлю что длинну строки можно проверить так if LenGth(s)<1 then // строка пустая
Ответ отправил: Monah (статус: 5-ый класс)
Ответ отправлен: 27.10.2006, 04:43


Вопрос № 60.288
Планшет подключен к USB и от него нужно получить только информацию о координатах и не нужно, чтобы он управлял курсором вместе с мышью. При удалении драйвера, с планшетом нет никакой связи. Что делать? Написать новый драйвер, или можно получать данные с планшета еще каким-нибудь способом? И как сделать, чтобы он не управлял курсором?
Координаты должны поступать в программу, написанную на Delphi
Отправлен: 26.10.2006, 21:32
Вопрос задал: Чурикова Алена (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PaVeL_Ekt
Здравствуйте, Чурикова Алена!

Если в драйвере нет установок по отключению, включению управления курсором, то боюсь тогда придется драйвер писать, так как без драйвера на делфе придется использовать асмемблеровсий код, для постоянного (ежесекундно например, но на практике скорее всего еще с меньшим интервалом) обращения к устройству и отслеживания позиций курсора планшета.

Вродебы так, если что уж сильно не судите, я пока в этой области не силен !!!
---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 27.10.2006, 07:00


Вопрос № 60.290
Уважаемые программисты подскажите как вставить BMP изображение из ресурсного файла в копанент TDrawGrid или TImageList
Отправлен: 26.10.2006, 21:43
Вопрос задал: Писарев, Павел, Юрьевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PaVeL_Ekt
Здравствуйте, Писарев, Павел, Юрьевич!

Это делается примерно так, в переменную типа TBitMap загружаем картинку из ресурса, а затем уже вставляем куда нужно !!!

(см. Пример)

УДАЧИ и УСПЕХОВ

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 27.10.2006, 06:51


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное