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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 306
от 26.11.2005, 14:36

Администратор:Калашников О.А.
В рассылке:Подписчиков: 245, Экспертов: 45
В номере:Вопросов: 7, Ответов: 22


Вопрос № 29876: Здравствуйте!Скажите пожалуйста, как узнать результат выполнения консольного приложения. Я запускаю Winexec(\'rar.exe e lll.rar\') и хочу узнать-успешно ли прошла розпаковка... Спасиибо....
Вопрос № 29880: Здравствуйте, уважаемые эксперты! Узнаю длину медиа файла: procedure Timer1.Timer(...); begin Label2.Caption := FormatDateTime ('hh:nn:ss', Player.Length / (1000 * 24 * 60 * 60))+ ' / ' + FormatDateTime ('hh:nn:ss'...
Вопрос № 29885: Хочется скопировать определенную страницу word документа *.doc (например с номером n) в RIChEDIT программно.Связался с WORD-om как OLE-сервером . Range мне дает определенный диапазон символов а выделить все на 2 странице ?(нумерация страниц п...
Вопрос № 29902: Здравствуйте, уважаемые эксперты! Такая проблема... В общем, нужно сделать что-то типа патчера для exe-файлов. Суть его работы такова: ему дают 2 ехешника - новый (модифицированный) и старый, он находит их различия, записывает в "...
Вопрос № 29919: Уважаемые эксперты есть такой вопрос, Нужно на каком то удалённом сервере хранить базу данных, и с клиентского приложения соеденяться с этой базой и работать с ней, доступ к базе должен быть многопользовательский, подскажите как работать не посре...
Вопрос № 29920: Здравствуйте. Можно ли в Delphi 6 программно имитировать перемещение,нажатие кнопок мыши ?...
Вопрос № 29939: Здраствуйте Экперты! У меня к Вам такие вопросы: 1 Где можно протестировать свою программу 2 Что такой баги? 3 При отправки программы для тестирования нужно ли отправлят исходники. с/у Ера...

Вопрос № 29.876
Здравствуйте!Скажите пожалуйста, как узнать результат выполнения консольного приложения. Я запускаю Winexec(\'rar.exe e lll.rar\') и хочу узнать-успешно ли прошла розпаковка...
Спасиибо.
Отправлен: 20.11.2005, 16:41
Вопрос задал: Андрей Дрофяк (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: sir henry
Здравствуйте, Андрей Дрофяк!
Запускайте консоль с ключом /k, тогда увидите что она наработала.
В Вашем случае:
Winexec('cmd.exe /k rar.exe и так далее');
Ответ отправил: sir henry (статус: Академик)
Отправлен: 20.11.2005, 17:00

Отвечает: REFERI
Здравствуйте, Андрей Дрофяк!

Приведите полный код приложения. Иначе не разобраться.
---------
Не судите, да не судимы будете...
Ответ отправил: REFERI (статус: 5-ый класс)
Отправлен: 20.11.2005, 20:03
Оценка за ответ: 3


Вопрос № 29.880
Здравствуйте, уважаемые эксперты!
Узнаю длину медиа файла:

procedure Timer1.Timer(...);
begin
Label2.Caption := FormatDateTime ('hh:nn:ss', Player.Length / (1000 * 24 * 60 * 60))+
' / ' +
FormatDateTime ('hh:nn:ss', Player.Position / (1000 * 24 * 60 * 60)) ;
end;

С аудио файлом всё нормально (00.05.44 / 00.01.45),
но с видео файлом ерунда какая-то -- 00.00.05 / 00.00.01 и больше не меняется (хотя его длина 5.35).
Также и с другими видео файлами.
Что делать?
Спасибо!
Отправлен: 20.11.2005, 17:56
Вопрос задал: Vic (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Vic!
Может быть Вы поясните Ваши расчеты и суть вопроса? Не совсем понятно.
Поставьте TimeFormat:=tfHMS и считывайте время непосредственно в часах, минутах и секундах.
var
ALen, APos: THMSRec;
Begin
ALen:=HMSRec(Player.Length);
APos:=HMSRec:(Player.Position);
Label2.Caption:=IntToStr(Alen.Hourse)+
IntToStr(ALen.Minutes)+
IntToStr(ALen.Seconds)+
'/'+
IntToStr(APos.Hourse)+
IntToStr(APos.Minutes)+
IntToStr(APos.Seconds)
End;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 20.11.2005, 18:44

Отвечает: REFERI
Здравствуйте, Vic!

Посмотрите приложение - там полно функций!
Удачи в кодинге!



Приложение:

---------
Не судите, да не судимы будете...

Ответ отправил: REFERI (статус: 5-ый класс)
Отправлен: 20.11.2005, 20:03


Вопрос № 29.885
Хочется скопировать определенную страницу word документа *.doc (например с номером n) в RIChEDIT программно.Связался с WORD-om
как OLE-сервером . Range мне дает определенный диапазон символов
а выделить все на 2 странице ?(нумерация страниц по Wordу)
Пытался последовательно искать символы конца страницы -не получилось!
Помогите кодом (советом),пожалуйста.
Спасибог!
Отправлен: 20.11.2005, 18:41
Вопрос задал: Tajkinol (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Tajkinol!
Все что ты делаешь через OLE имеет свои объекты в Visual Basic
Соответственно должен обращаться к MultiPages колекции
См. help в приложении
Хотя я бы с OLE не работал, есть много проблем

Приложение:

Ответ отправил: Архангельский Андрей Германович (статус: 9-ый класс)
Отправлен: 20.11.2005, 18:50
Оценка за ответ: 5


Вопрос № 29.902
Здравствуйте, уважаемые эксперты!
Такая проблема...
В общем, нужно сделать что-то типа патчера для exe-файлов.
Суть его работы такова: ему дают 2 ехешника - новый (модифицированный) и старый, он находит их различия,
записывает в "файл патча".
И при необходимости, воспользовавшись патчем, можно было преобразовать 1 ехешник во 2-й.
Возможно ли такое?
И, самое важное, чтобы в патче были только изменённые данные, адреса, по которым они прописаны и т.д., ...но не кусок ехе файла, присутствующий и в "старом" ехешнике.
Заранее спасибо за ответ!
Отправлен: 20.11.2005, 22:00
Вопрос задал: ab5ent (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Tsechoev Bagaudin
Здравствуйте, ab5ent!
Exe файлы это скомпилированные, исполняемые модули. Для того, чтобы найти разницу, как я понял в коде, необходимо сделать декомпиляцию. Что делфи не позволяет делать (есть проги, которые это делают с большими огрехами). А если Вы хотите реализовать сопровождение своего продукта, то тут в самом проекте нужно придерживаться модульности (DLL, Lib и т.п.). Проще говоря разделяете задачи по каким-то общим критериям. А exe файлы не линчуют.
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 21.11.2005, 00:54
Оценка за ответ: 3
Комментарий оценки:
Вы меня неправильно поняли...
Мне нужно сделать что-то типа патчей для прошивок мобильников, но только для файлов на компе (даже не обязательно exe, это только в моём случае)...

Отвечает: Romodos
Здравствуйте, ab5ent!
Эксперт BAgaudin видимо не понял вашего вопроса. Конечно, это возможно. Ведб программы - это обычные бинарные файлы. Вам просто надо побайтово сравнивать два файла, записывать эти различия в файл. (формат файла наужно придумать самому, например так: записи с таким содержанием
адрес, по которому надо вписать изменения;
количество изменяемых байт;
сами изменяемые байты)
И написать программу, которая записывает данные из патч-файла в программу.
Долго можно расписывать тонкости реализации, вы должны сами начать писать, а потом, при затруднениях, спрашивать у нас
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 21.11.2005, 06:33
Оценка за ответ: 5
Комментарий оценки:
Спасибо, вопрос почти освещён :)))
Начну делать, если чё не получится - обязательно спрошу...


Вопрос № 29.919
Уважаемые эксперты есть такой вопрос,
Нужно на каком то удалённом сервере хранить базу данных, и с клиентского приложения соеденяться с этой базой и работать с ней, доступ к базе должен быть многопользовательский, подскажите как работать не посредственно с сервером как туда базу то эту записать и кто предоставляет такие сервера и на базе чего они работают, а так же буду блогадарен исходничку который бы подробно объяснил мне принцип работы, просьба с использование SQL запросов, если нет исходников то по подробнее расскажите что по чём...
Заранее благодарен!!!
Отправлен: 21.11.2005, 08:21
Вопрос задал: Alex S (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Alex S!
Нда, ну и вопросик. В ответ на него пишут целую книгу. :)
Например Фаронов В. "Программирование баз данных в Delphi".
Если сказать коротко, то:
1. На компьютер устанавливается специальная программа - сервер баз данных.
2. С любого компьютера в сети к этому компьютеру с БД обращаются из клиентского приложения посредством запросов: запрос на получение данных (SELECT ... FROM), создание таблиц (CREATE TABLE) и т.п. Операторов SQL очень много и у каждого сервера БД есть свои описания на язык SQL.
******************
За "по подробнее" обращайтесь на сайт того сервера, который Вы выбирете для управления базой данных:
- Для MySQL - www.mysql.ru
- Для InterBaseFirebird - www.ibase.ru
- Для Oracle - www.oracle.ru
- Для MSSQL - www.microsoft.com/rus/
и т.д.
*************************
Для сервера InterBaseFirebird в Дельфи есть специальные компоненты для прямого обращения к базе данных. К остальным базам можно обращаться черз стандартные компоненты - ADO, dbExpress, BDE... Как это делается - см. книгу, т.к. описывать придется много.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 21.11.2005, 08:38

Отвечает: Архангельский Андрей Германович
Здравствуйте, Alex S!

Берем например, СУБД Interbase/Firebird, устанавливаем на сервер

С клиентского компьютера начинаем выпонять SQL-запросы:

CREATE DATABASE 'azbook.rt-press.ru:D:FirmsAZDesign CorpwwwStat.gdb' .....
CONNECT 'azbook.rt-press.ru:D:FirmsAZDesign CorpwwwStat.gdb' .....
CREATE TABLE VIZITLOG (......
и так далее. Более подробно см.

http://www.az-design.ru/mnSprtDataBase.shtml
Ответ отправил: Архангельский Андрей Германович (статус: 9-ый класс)
Отправлен: 21.11.2005, 10:28


Вопрос № 29.920
Здравствуйте.
Можно ли в Delphi 6 программно имитировать перемещение,нажатие кнопок мыши ?
Отправлен: 21.11.2005, 08:37
Вопрос задал: Сибирцев Олег (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Сибирцев Олег!
Можно. Делается это с помощью функций WinAPI:
SetCursorPos(X, Y): {Перемещение курсора мыши в позицию X, Y}
Mouse_Event(Набор_флагов, X, Y, 0, 0); {Эмулятор каких-либо действий мыши}
Здесь Набор_флагов - это то, что должна делать мышь:
- MOUSEEVENTF_MOVE - движение мыши,
- MOUSEEVENTF_LEFTDOWN - нажатие левой кнопки,
- MOUSEEVENTF_LEFTUP - отпускание левой кнопки и т.д.
Флагов там много - смотрите хелп.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 21.11.2005, 08:54

Отвечает: Vadim Vitomsky
Здравствуйте, Сибирцев Олег!
Для этого необходимо использовать функции WinAPI, независимо от версии Delphi.
Ответ отправил: Vadim Vitomsky (статус: 3-ий класс)
Отправлен: 21.11.2005, 09:28

Отвечает: REFERI
Здравствуйте, Сибирцев Олег!

Можно! Вот, пожалуйста, наглядный пример.
Вы нажимаете на одну кнопку, а курсор убегает и нажимает на другую! (см приложение).
Также приведу несколько полезных функций для работы с мышкой (см приложение).
Удачи в кодинге!

Приложение:

---------
Не судите, да не судимы будете...

Ответ отправил: REFERI (статус: 5-ый класс)
Отправлен: 21.11.2005, 20:02


Вопрос № 29.939
Здраствуйте Экперты!
У меня к Вам такие вопросы:
1 Где можно протестировать свою программу
2 Что такой баги?
3 При отправки программы для тестирования нужно ли отправлят исходники.
с/у Ера
Отправлен: 21.11.2005, 13:01
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 10
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, ERA!
1)Где? На станции техобслуживания, где ж еще :) Да все просто. Берешь и сам гоняешь. Причем стараешься сделать то, для чего программа не предусмотрена. Вводи недопустимые символы, проверяй как программа реагирует и тп. Хочешь, мне шли, я ее точно протестирую :) Исходники оставь себе.

2)Баги - программные ошибки, допущенные тобой.

3)См. пункт 1.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 21.11.2005, 13:18

Отвечает: sir henry
Здравствуйте, ERA!
1.
- Если много денег и некуда их девать, то нужно обратится в компанию, которая занимается тестированием. Например в "Астро-софт", они вроде как этим занимались:
http://www.astrosoft.ru
- Вы ее можете сами протестировать. Для этого в поисковике поищите методологию тестирования программных продуктов. Конкретно что искать я подсказать Вам не могу.
- Выложить на свой сайт и прорекламировать свой программный продукт.
Все эти методики имеют как преимущества, так и существенные недостатки. Описывать их не буду.
Наиболее реальный (для Вас) способ тестирования - заключение договора с заказчиком Вашей программы, чтобы он ее в реальной обстановке прогнал на своих компах.
2. Баги - это тараканы в Вашей программе. :)
Другими словами логические ошибки.
3. Это Вам скажет тот, кому Вы отправляете программу и что Вы ждете от результатов тестироввания.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 21.11.2005, 15:16

Отвечает: Romodos
Здравствуйте, ERA!
1. Протестировать вашу программу могут ваши друзья и занкомые (если вы не хотите денег платить)
2. Это ошибки, возникающие при работе программы
3. Не обязательно. Даже не нужно. Ведь тестер - это пользователь программы, который проверяет все её возможности, правильность и скорость работы программы в различных условиях.
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 21.11.2005, 15:37

Отвечает: Rusland
Здравствуйте, ERA!
Добавлю про баги...
Самый первый компьютерный баг в истории был обнаружен в 1945 г., когда инженеры нашли в корпусе компьютера Harvard Mark II мотылька. Этот мотылек закорачивал контакты - и компьютер сбоил. Инженеры сделали запись в журнале событий "Первый случай обнаружения бага" (по-английски "bug" означает "насекомое"). С тех пор компьютерные сбои (ошибки) принято называть багами.
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Практикант)
Отправлен: 21.11.2005, 16:08

Отвечает: Schmak
Здравствуйте, ERA!
1)Самый простой и бесплатный способ - это тестировать самому (давать знакомым).
При тестировании нужно выполнять разные (лучше недопустимые, но пока не запрещённые) действия и смотреть как на них реагирует программа. Попутно тестированию изменять код программы.
Например вводить в поля для чисел буквы и смотреть, чтобы программа не вылетала, а выдавала соответствующее сообщение.

2) Баг (от англ. bug-жук)-ошибка в программе.

---------
Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: 10-ый класс)
Отправлен: 21.11.2005, 17:07

Отвечает: Warrior
Здравствуйте, ERA!
1. Всегда находится человек, который сможет найти самые непредсказуемые ошибки в программе. Ищи среди своих друзей своих бетта-тестеров. Почему бетта, потому, что альфа - есть сам програмист.
2. Это ошибки в твоей программе.
3. Исходники - это твой козырь. Если кто-то завладеет исходниками - твоя программа будет стоит РОВНО - НИЧЕГО!!!!! Куски кода можна показывать и высылть на определение в их тех самых БАГОВ.
Ответ отправил: Warrior (статус: 2-ой класс)
Отправлен: 21.11.2005, 17:54

Отвечает: REFERI
Здравствуйте, ERA!

Свою программу можно протестировать, предоставив ее всем кто согласен это сделать.
Где вы собираетесь искать таких людей я не знаю! Но могу сказать где их можно найти :) Я готов поюзать вашу программу, поискать в ней баги, глюки и высказать вам свое мнение! Кроме того можете обратиться к другим экспертам. Исходники присылать не обязательно. Если у вас 7-я версия и вы не использовали к-либо дополнительных компонентов, тогда лучше пришлите исходники без *.exe файла, а то много наверное весит.
Надо помогать друг другу, и протестировав вашу программу я, наверняка когда-нибудь обращусь к вам с просьбой протестировать свою!
---------
Не судите, да не судимы будете...
Ответ отправил: REFERI (статус: 5-ый класс)
Отправлен: 21.11.2005, 20:52

Отвечает: Denisss
Здравствуйте, ERA!
1. Самый лучший и дешевый способ - попросить друзей погонять Ваши программы и потестировать их самостоятельно. Кроме того, если эти программы интересны Вашим друзьям, то это вдвое или даже втрое увеличивает эффективность такого тестирования. Кроме того, Вы можете выложить программы на Вашем сайте и предложить их потестировать всем, кому не лень.
2. Баги (Bugs - жучки) - вредные "насекомые", глюки, ошибки, которые проявляются в программах в самых неожиданных местах (для программиста). Лучший способ избавления - бета (и альфа) тестирование Ваших программ, соблюдение принципов ООП при программировании (облегчает поиск и исправление ошибок) и внимательно перепроверяйте строчки Вашего кода.
3. Если среди Ваших друзей есть опытные программисты, то конечно же им можно показывать исходники. Если же Вы собираетесь тестировать за деньги (а это менее эффективно, чем друзья и бета-тестеры, на мой взгляд), то, понятное дело, что Ваша программа не является Open Source (т.к. чтобы тратить на программу деньги надо, чтобы она давала прибыль) и Вам следует держать исходники при себе и показывать только тем, кому Вы действительно доверяете.
Ответ отправил: Denisss (статус: Практикант)
Отправлен: 21.11.2005, 23:06

Отвечает: Vitava
Здравствуйте, ERA!
1. можно дать ссылку на форумах или зааплоадить на сайты подобыные www.files.com.ua, www.download.ru
2. Баги - это ошибки
3. Нет не нужно, иначе ваша программа может стать не вашей.

Удачи Вам!
Ответ отправил: Vitava (статус: 3-ий класс)
Отправлен: 21.11.2005, 23:43

Отвечает: Master135
Здравствуйте, ERA!
Хотел дополнить про тестирование. Ни один серьезный программный продукт не тестируют, гоняя вручную, (хотя так и делают большинство начинающих программистов). Существует По автоматизации этих процессов, например Багтрекерами всякими, более подробно по этому поводу можно узнать на форуме тестировщиков forums.software-testing.ru
---------
И пусть кто-то скажет что я не прав....
Ответ отправил: Master135 (статус: Студент)
Отправлен: 22.11.2005, 02:12


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

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

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

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

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


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


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное