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

СообЧа (СООБщество ЧАйников). Обмен опытом, вопросы, ответы. 18.04.03


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

***СООБщество ЧАйников***

Система Эксперт
Найдем ответ СообЧа!


18.04.03



Свежие FAQ на SoobCha.Ru


FAQ от системы Эксперт


Вопросы от системы Эксперт


FAQ от системы Эксперт
Тема: BCB

Подскажите пожадуйста как в Buildere 5 работать с ini файлами. Например у меня имеется доступ к MySQL базе и для каждого юзера есть свои права. Нужно чтобы програма сохраняла настройки пользователя в ini файле.. что бы каждый раз заново не заполнять поля и не выполнять подключение к базе.


Ответ:

Это очень просто, подключаете #include <inifiles.hpp> и пользуетесь методами класса TIniFile.
Например:
TIniFile *pif;
pif = new TIniFile(put+"user.ini");
Top=pif->ReadInteger("SETUP","Top",10);
pif->WriteString("SETUP","Font",SGrid1->Font->Name);
delete pif;
В хелпе все описано элементарно.

[Наверх]

Тема: C

Мне нужно перевести число(типа int) из десятичной системы исчисления в ДВОИЧНУЮ, стандартных функций я не нашел кроме Setbase - которая не переводит в двоичную систему (в этой версии точно не переводит). Подскажите пожалуйста, может быть есть универсальный алгоритм (функция). Я об этом думал и возникает другой вопрос: если число перевести в двоичную систему, то какой тип данных будет относится к двоичному числу (может его записать в строку (массив char)).


Ответ:

int -- это и есть тип данных, в котором хранится целое двоичное число в два байта. То есть 16-и битное число.
Над ним можно делать двоичные операции операции и выводить на экран :


Если же вам всё-таки нужно создать особый тип данных, где можно было бы легко добраться до каждого бита, то можно создать массив и использовать аналогию prinfbin.

[Наверх]

Тема: DOS

Нужно найти файл при помощи командной строки, при этом неизвесно сколько HDD и CDROM, у CDROM могут быть разные буквы(e:;h:;g:), это зависит сколько HDD стоит в системе


Ответ:

DIR filepart /S или ATTRIB filepart /S, где filepart - шаблон файла, с учетом которого проводится поиск.

[Наверх]

Тема: DOS

Как из командной строки запустить ярлык в виндос?


Ответ:

start [путь к ярлыку]\[имя ярлыка].lnk
Например :
start c:\windows\desktop\program.lnk
Если у вас имя созданного ярлыка содержит префикс типа "shortcut to" - его (префикс) тоже надо писать, т.к. он - часть имени ярлыка.
Например :
start "c:\windows\desktop\shortcut to program.lnk"
Правда под ДОС длинные имена файлов надо обрезать, так что получится что-то вроде:
start "c:\windows\desktop\shortc~1.lnk"
(f если ярлыков в этом месте много - придется узнать какой номер n (.....~n) приклеит ему ДОС.

[Наверх]

Тема: Delphi

Каким образом можно привязать написанное на Delphi приложение к определенному типу файлов (к примеру, чтобы при двойном клике на текстовый файл он открывался не в Блокноте, а в моей программе)?


Ответ:

Вот статейка на эту тему!!!
Ассоциации файлов
В основном вам необходимо добавить два ключа в улей регистра HKEY_CLASSES_ROOT. Зарегистрируете в корне ваше расширение типа ".ext" (создаете ключ с именем расширения): HKEY_CLASSES_ROOT\.ext\
и запишите в строке "default" созданного ключа "внутреннее имя" вашего типа файлов - например, MyApp.Document:
HKEY_CLASSES_ROOT\.ext\Default = "MyApp.Document"
Затем создайте другой ключ с этим именем:
HKEY_CLASSES_ROOT\MyApp.Document\
Создайте подключ с именем "shell", в нем другой подключ с именем "open" и в "open", в свою очередь, еще один подключ с именем "command". Значение по умолчанию (default) - путь и имя вашего приложению с ключом "%1", представляющим параметр "имя файла", позволяя системе подставлять подставлять вызванный файл:
HKEY_CLASSES_ROOT\MyApp.Document\shell\open\command\Default = "C:\myapp\myapp.exe %1"
Все манипуляции в коде производятся с помощью объекта TRegistry или при использовании InstallShield, который сделает это за вас автоматически. Я должен посоветовать вам использовать оба пути, поскольку пользователь может внести в регистры всякий мусор.
Вот еще один совет:
Самый простой путь достижения цели - модифицировать секцию Extensions в win.ini-файле, расположенном с директории Windows. Это также работает под Win 95, автоматически обновляя регистры при перезапуске системы. Взгляните на секцию Extensions win.ini-файл
а для определения формата записи. Поместите IniFiles в секцию используемых модулей и создайте код подобно этому:
var INIFile: TIniFile;
begin
try
INIFile := TInifile.Create('WIN.INI');
INIFile.WriteString('Extensions','txt','c:\windows\notepad.exe ^.txt');
finally
INIFile.Free;
end;
end;
Это ассоциирует файлы с расширением *.txt с Записной Книжкой (Notepad) Windows. Например, для ассоциации вашего приложения MyApp с каталогом расположения c:\MyApps с файлами, имеющими расширение *.MAP, необходимо выполнить следующее:
var INIFile: TIniFile;
begin
try
INIFile := TInifile.Create('WIN.INI');
INIFile.WriteString('Extensions','map','c:\myapps\myapp.exe ^.map');
finally
INIFile.Free;
end;
end;
Это будет работать как в Win 3.11, так и в Win 95 и избавит вас от работы с регистрами в Win 95. Не уверен насчет Win NT (или Win98), поскольку у меня нет возможности протестировать это дома. Имейте в виду, что все вышеописанное - только часть проблемы,
т.к. приложение после всех вышеуказанных манипуляций еще должно этот файл открыть. Для этого вы должны прочесть ParamStr(1), содержащий полный путь к файлу, выбранному пользователем, и должным образом загрузить его в свое приложение.
Дополнение
Михаил Шпанер продолжает эту тему:
Чтобы описание типа файлов появилось в списке "Типы файлов" Windows 98, укажите в параметре "default" ключа 'HKEY_CLASSES_ROOT\MyApp.Document\' краткое описание типа файлов (файл My App).
Чтобы ассоциированные файлы имели соответствующую приложению иконку, нужно в параметре "default" ключа 'HKEY_CLASSES_ROOT\ MyApp.Document\DefaultIcon\' указать путь к иконке. Иконки соответствующих файлов обновятся после перезагрузки Windows. Windows 98
делает это без перезагрузки системы, но как это сделать я не знаю, может быть кто-то подскажет.
Пример кода (проверено в Delphi5, Windows98):
Добавьте 'Registry' в строку Uses.
Объявите переменную 'RegFile':
var RegFile : TRegIniFile;
begin
RegFile:=TRegIniFile.Create;
RegFile.RootKey:=HKEY_CLASSES_ROOT; //устанвливаем текущий ключ
RegFile.WriteString('.ext','','MyApp.Document'); // определяем расширение
RegFile.WriteString('MyApp.Document','','Описание файлов');//Описание ассоциированных файлов (для списка "Типы файлов" Windows 98).
RegFile.WriteString('MyApp.Document \DefaultIcon','','Путь к иконе для файлов'); //устанавливаем икону для ассоциированных файлов
//Исполняемый файл (полный путь)
RegFile.WriteString(' MyApp.Document \Shell\Open\Command','','исполняемый файл "%1" ');
RegFile.CloseKey;
RegFile.Free;
End;

[Наверх]

Тема: Delphi

Необходимо реализовать полный перебор всех вложенных папок в указанной папке (т.е. все вложенные папки должны быть представлены в виде дерева, к примеру). Как это можно сделать?


Ответ:

Простейший сканнер
Вот пример, который ищет мп3 файлы на жестком диске...



[Наверх]

Тема: Delphi

Как на паскале/дельфи собрать несколько файлов из папки в один файл моего формата, формат такой:
type
TDataFile = packed record
DirID: string[3];
DirName: string[12];
FileID : string[4];
FileName: string[12];
FileContent: ????; // предпологаемое содержимое файла, незнаю какой тип использовать
end;
И как потом сделать чтение, показ например битмапа который допустим в середине этого файла, как это делается в Quake 1,2,3 и Half-Life - *.


Ответ:

Что же... Вопрос неплохой, но наверное четкого ответа на него написать не получится, но напишу как это пришлось реализовывать мне.
Требуется: Записать в один файл несколько других из папки.
1) Использовать ZIP :). Понимаю что примитивно, но в некоторых случаях очень действенно. А самое удобное в данном вариатне, что все это очень просто реализуется.
2) Использовать потоки. То есть несколько файлов последовательно пишутся в один поток. А потом дописывается заголовок.


Но как показывает практика данные надо еще и как-то читать. Немного печально, но необходимо. Поэтому пишем нечто похожее на это


Вот примерно такие пироги с котятами. Конечно где-то возможны ошибки, поскольку часть кода просто выкинута, но в общих чертах должно работать.

[Наверх]

Тема: Delphi

Как закрыть окно сеанса MS Dos после завершения выполнения процесса (createprocess)


Ответ:

Чтобы выяснить, работает ли еще программа, используйте GetProcessTimes, параметр lpExitTime.
Для принудительного завершения процесса -- TerminateProcess.

[Наверх]

Тема: Internet

Как пользоваться Teleport Pro?


Ответ:

Телепорт (как, впрочем и другие качалки) скачивает всё, на что есть ссылка на данной странице (а потом данной становится скачанная страница и т.д.)
Первый адрес:
http://host.zone/phorum/index.html (например) и на этой странице есть ссылка на страницу
http://host.zone/phorum/test.html - она тоже будет скачана.
Если там (на test.html) есть ссылка на файл http://host.zone/phorum/image.gif, то и он будет скачан (если в настройках скачивания поставили скачивать графику).
А если учесть, что на странице ОГРОМНОЕ МНОЖЕСТВО ссылок различных, то не удивительно, что список файлов разрастается до огромных размеров. НО это не сильно страшно, ввиду того, что в большинстве своём это файлы маленькие (и вообще говоря, если бы Вы открывали все эти страницы поочереди, то все эти файлы Вам бы загрузились).
Ну да ладно. Существует ограничение на глубину скачивания:
http://host.zone/phorum/index.html первый уровень в нашем примере
http://host.zone/phorum/second/index.html второй уровень в нашем примере
http://host.zone/phorum/second/third/index.html третий уровень в нашем примере
Таким образом, если все страницы располагаются на одном уровне и различаются только именами файлов, то можно ставить один уровень (или ноль, точно не могу сказать откуда идёт нумерация).
Ещё можно ограничивать скачивание:
только этот сервер
только адреса, начинающиеся с http://host.zone/phorum/
а также можно отключить закачку картинок (в форуме они не главное)

[Наверх]

Тема: JavaScript

Подскажите как мне с помощью document.write() ввести строку
onmouseover='dropit(event,(nn6)?'dropmenuAll':dropmenuAll,'document.dropmenuAll',445)';
Я пробовал так:
document.write("onmouseover='dropit(event,(nn6)?'dropmenuAll':dropmenuAll,'document.dropmenuAll',445)';");
но ничего не получается :(


Ответ:

И ничего не должно получаться, попробуйте строку разбить на части, т.е:
document.write("string 1" + "string 2" + "stri" + "ng 3")
или же тоже по кусочкам присвоить переменные, а потом вывести переменные:
var x="string 1"
var x2="string 2"
var x3="stri"
var x4="ng 3"
document.write(x + x2 + x3 + x4)

[Наверх]

Тема: Linux

Есть ли на данный момент ПО под Linux (Текстовые редакторы, электронные таблицы ) которые бы могли сохранять документ в формате, читаемом в программах MS Office (желательно с сохранением форматирования).


Ответ:

http://openoffice.org - классный офисный пакет. Переведён на русский компанией ALT Linux. Есть версии для Linux и Windiws.
StarOffice - офисный пакет Sun, прородитель OpenOffice. Начиная с версии 6.0 платен (но мы то в России). Есть офицальная Sun'овская руссификация.
Gnumeric - gtk основанный редактор таблиц. Полностью совместим с EXSEL XP. Есть небольшие заморочки с написанием (с исполнением чётко) макросов.
ABI WORD - Что-то среднее между word и wordpad. Основан на gtk. С rtf работает отлично, с doc отлично до версии Word97. В word 2000 есть некоторые функции, не поддерживаемые abiword'ом.
Два последних входят в пакет Gnome Office.
Koffice - начиная с версии 1.2.1 заслуживает внимаия. Входит в состав KDE, основан на Qt. Многое не поддерживает, но простенькие таблицы и форматированные тексты открыть в состоянии. Не в состоянии обработать закладки или оглавление сгенерированное в MS WORD.
Korel Office - есть и под windows и под linux. Помоему его разработка остановлена, но он вполне неплохо (если доставить побольше кирилических шрифтов) работает и с таблицами и с текстами и с векторной графикой.

[Наверх]

Тема: Pascal

Кто нибудь занимался сопряжением компа с самодельными устройствами? Интересует работа с принтерным портом,программинг на турбо паскале желательно с ассемблерными вставками.


Ответ:

Вопрос емкий, и всю теорию в письме не выложишь, но примерчиком помочь можно.
Непонятно только. Зачем тебе ассемблерные вставки, если все можно сделать на языке высокого уровня...
Вот несколько процедур из реально работающей программы



[Наверх]

Тема: Scan

При сканировании фотографий файлы jpg получаются размером около 600 Кб. А в Сети файлы гораздо лучшего качества имеют размер менее 100 Кб. Как можно уменьшить размер файла?


Ответ:

Для оптимизации фотографий используется обработка в программах. Просто при получении изображения туда записывается много всякой служебной информации, и ее можно вырезать.
Например, в IRFANVIEW есть опция ОПТИМИЗИРОВАТЬ, да и во многих других программах тоже. По-моему, в Фотошопе, начиная с 5.0, есть функция ОПТИМИЗИРОВАТЬ для WEB. Пробуйте, и должно получиться.

[Наверх]

Вопросы от системы Эксперт
Тема: Clipper

Подскажите ,пожалуйста, откуда можно скачать мат.обеспечение для программирования на Clippere под Windows, а также сообщения об ошибках на русском языке, и документацию - на русском.
Ответить: mailto:expert@soobcha.ru?subject=Rass_URP599H02M
[Наверх]

Тема: Delphi

Есть новый компонент типа Edit, в него заносится текст с базы по какому то полю. Как получить список полей выбрав одно из них в редакторе свойств. По примеру FieldName список в dbEdit. Или хотябы намек как это сделать.
Ответить: mailto:expert@soobcha.ru?subject=Rass_URN39CE3X
[Наверх]

Тема: Games

Подскажите как пройти Меч и Магию 9(эпизод где ты после смерти, при поиске умерших войнов, попадаешь в место где нужно при помощи нажатия на статуетки поднимать мосты?)
Ответить: mailto:expert@soobcha.ru?subject=Rass_URO27ONR1N

В NFS HP 2 очень неудобно управлять с клавиатуры, поскольку машина реагирует заторможенно при любом разрешении. В NFS HP была настройка чувствительности, здесь же я ее не нашел. Что-нибудь можно сделать, кроме покупки руля?
Видеокарта - GeForce2 MX400
Ответить: mailto:expert@soobcha.ru?subject=Rass_URN39CLA3D

Имеется Need For Speed 6. Хочется вытащить музыку. С помощью GAP не получается. Как вытащить?
Ответить: mailto:expert@soobcha.ru?subject=Rass_URQ3PXVK1C
[Наверх]

Тема: Internet

Нужна ссылка на популярный англоязычный сайт, позволяющий бесплатно разместить объявление.
Ответить: mailto:expert@soobcha.ru?subject=Rass_URP2KPRJ17
[Наверх]

Тема: Linux

Попал ко мне диск с ави-шкой с титрами и перемоткой по клипам и с несколькими вариантами саундтрека..., как бы всё это дело к mplayer прикрутить..., и чтоб перемотка в mplayer работала с этим файлом.., xine не предлагать.., ну если уж совсем никак, то как в xine сделать?
Ответить: mailto:expert@soobcha.ru?subject=Rass_URP599J83P
[Наверх]

Тема: Perl

Я тут скачал скрипт который вроде написан на Perl.Так вот он представляет из себя бота который входит в ИРК канал. И я хотел бы узнать как его запустить?
Можно ли это сделать просто с помощью какого либо бесплатного хостинга? Я думаю что запускают его в основном с помощью Shall`а ...на его у меня нет... Я ещё хотел бы запустить брут-форс... Так как мне можно запустить этот скрипт?
Ответить: mailto:expert@soobcha.ru?subject=Rass_URP2KPPYF
[Наверх]

Тема: Prog

Чем можно редактировать 32-битные библиотеки Microsoft?
Например, чтобы можно было добавить в ресурсы картинку и показатель ее в каком-нибудь диалоге. Т.е. обычные редакторы ресурсов этого не умеют... Например, хочу в диалог "Завершение работы Windows" справа повесить 2 картинки. Знаю, что такое возможно, знакомый делал. Вопрос - как?
Ответить: mailto:expert@soobcha.ru?subject=Rass_URF2VCAR1T

Подкажите с чего начать изучение и программирование для Pocket PC.
Ответить: mailto:expert@soobcha.ru?subject=Rass_URN39D248N
[Наверх]

Тема: Scan

Марка сканера: Mustek Paragon 600 CD II и FilmScan 250
Интерфейс: интерфейсная плата Adaptec15xx и 8-и битная SCSII
Операционная система: Windows XP Pro Rus
Т.к. интерфейсные карты старые (ISA, не РнР), то соответсвенно WinXP их не видит: Paragon, имеет скази разъем и теоретически может работать со скази картой (в принципе Адаптек это скази карта, но чтобы работал сканер нужно установить перемычку в положение : э.э. интерфейсной карты (сори за тавтологию) сканера и подключать другим кабелем ): драйверов на них под XP в и-нете не нашел. Возможно ли заставить сканеры работать: например поставить полноценную SCSII карту (какую I,II, Wide,UltraWide?: %) и повесить на нее два сканера сразу? или иным другим способом: кроме обратной установки Win9x:. %)
Ответить: mailto:expert@soobcha.ru?subject=Rass_URP599G628
[Наверх]

Тема: VB

Не могли бы Вы дать разъяснение по следующим вопросам:
1. В каких случаях лучше использовать удаленную автоматизацию, а в каких DCOM?
2. Какое связывание (раннее или позднее) лучше использовать при ссылке на удаленный сервер ActiveX.EXE?
3. Как ПРАВИЛЬНО выполнить регистрацию клиентской и серверной части?
4. Дайте пожалуйста подробное описание настроек DCOM (с помощью dcomcnfg.exe)
5. Каие причины выдачи клиентом ошибки 70 (Permission denied) и 429 (ActiveX component can't create object)?
Ответить: mailto:expert@soobcha.ru?subject=Rass_URP599RA7O
[Наверх]

Поиск по Базе знаний :
http://www.soobcha.ru/search/

Автоответчики.
Информация о системе Эксперт СообЧа (пустое сообщение):
mailto:reply.infoexpert@soobcha.ru

Информация о порядке регистрации в качестве эксперта (пустое сообщение):
mailto:reply.regexpert@soobcha.ru

Список тем для задания вопросов (пустое сообщение):
mailto:reply.subjexpert@soobcha.ru

Список всех автоответчиков СообЧа (пустое сообщение):
mailto:help@soobcha.org

Информация и заказ диска СообЧа:
http://soobcha.ru/cd/ или:
Для России: mailto:disk@soobcha.org?subject=page
Для Украины: mailto:disk_ua@soobcha.org?subject=page

Администратор системы:
mailto:expert_adm@soobcha.org
Копирование материалов рассылки допускается только по согласованию с администратором системы.
Рассылка создана программой Expert Page Generator.
(С) 2000-2003 СообЧа!


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное