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

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


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

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

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


29.10.02


Доброго дня всем нам!

На нашем сайте очередные обновления. По многочисленным просьбам реализован поиск по Базе Знаний. Очень удобная штуковина, скажу я Вам! :)) Заходите, смотрите и пользуйтесь на здоровье!

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


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


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


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

Пишу консольное приложение, и вопрос по оператору write.
Пишу к примеру:
write('*');
write('*');
Получается **.
А нужно, чтобы write писал в определенное место на экране!
Может есть что-то типа позиционирования на экране?


Ответ:

Самый простой способ позиционировать символы на экране это написать примерно так:
write(' ':25,'*');
получается, что перед выводом '*' будут иметь место 25 пробелов.
Для перевода вывода на следующую строку используй Writeln.
А вообще-то можешь почитать HELP кликни мышкой на слове Write и нажми F1, говорят помогает.

[Наверх]

Тема: Delphi

Как в дельфи запусить файл 1.bat который находиться в каталоге d:\1.


Ответ:

функция ShellExecute
Функция ShellExecute позволяет выполнить любое приложение Windows. Можно также открыть файл документа, что означает выполнение связанного с ним приложения и загрузку в него этого документа. Например, обычно с документами, имеющими расширение .doc, связан
Winword. В этом случае открыть файл, например, с именем 'file.doc' означает запустить Winword и передать ему в качестве параметра имя файла 'file.doc'. Кроме описанных возможностей функция ShellExecute позволяет распечатать указанный файл или открыть ук
азанную папку. Последнее означает, что будет запущена программа 'Проводник' с открытой указанной папкой.
Параметры функции означают следующее:
Параметр Описание
Wnd Родительское окно, в котором отображаются сообщения запускаемого приложения.
Operation Указывает на строку с нулевым символом в конце, которая определяет выполняемую операцию. Эта строка может содержать текст "open" (открыть) или "print" (напечатать). Для Windows 95 и NT определено еще одно значение: "explore" (исследовать)
- открыть папку. Если параметр Operation равен nil, то по умолчанию выполняется операция "open".
FileName Указывает на строку с нулевым символом в конце, которая определяет имя открываемого файла.
Parameters Указывает на строку с нулевым символом в конце, которая определяет передаваемые в приложение параметры, если FileName определяет выполняемый файл. Если FileName указывает на строку, определяющую открываемый документ, то этот параметр зада
ется равным nil.
Directory Указывает на строку с нулевым символом в конце, которая определяет каталог по умолчанию.
ShowCmd Определяет, режим открытия указанного файла. Этот параметр может иметь значения:
SW_HIDE Окно делается невидимым и фокус передается другому окну.
SW_MINIMIZE Свертывает (минимизирует) указанное окно и активизирует следующее в Z-последовательности окно верхнего уровня в списке сиcтемы.
SW_MAXIMIZE Развертывает (максимизирует) указанное окно.
SW_RESTORE Активизирует и отображает окно. Если это окно свернуто или развернуто, то оно восстанавливается до своих первоначальных размеров и отображается в первоначальной позиции (почти то же самое, что SW_SHOWNORMAL).
SW_SHOW Активизирует и отображает окно в его текущей позиции и с текущими размерами.
SW_SHOWDEFAULT Только для Windows 95 и NT. Устанавливает состояние в соответствии с флагом SW_ в структуре STARTUPINFO, передаваемой в функцию CreateProcess программой, запускающей приложение. Приложение должно вызывать ShowWindow с этим флагом, чтобы з
адать начальное состояние своего главного окна.
SW_SHOWMAXIMIZED Активизирует и отображает окно в развернутом виде (максимизированном).
SW_SHOWMINIMIZED Активизирует и отображает окно в свернутом виде (в виде пиктограммы).
SW_SHOWMINNOACTIVE Отображает окно в свернутом виде (в виде пиктограммы). Активным остается то окно, которое было активным до этого.
SW_SHOWNA Отображает окно в его текущей позиции и с текущими размерами. Активным остается то окно, которое было активным до этого.
SW_SHOWNOACTIVATE Отображает окно в его последней позиции и с последними размерами. Активным остается то окно, которое было активным до этого.
SW_SHOWNORMAL Активизирует и отображает окно. Если это окно свернуто или развернуто, то оно восстанавливается до своих первоначальных размеров и отображается в первоначальной позиции (почти то же самое, что SW_RESTORE).
Функция возвращает дескриптор открытого приложения или дескриптор сервера DDE приложения. Если возвращаемое значение меньше или равно 32, это указывает на ошибку. Значения ошибок означают следующее (в Windows 95 и NT для этих ошибок имеются именованные к
онстанты - см. справку Delphi 3):
Значение Пояснение
0 Системе не хватает памяти, выполняемый файл испорчен или произошло ошибочное перераспределение памяти.
2 Файл не найден.
3 Путь не найден.
5 Была попытка динамически связаться с задачей, была ошибка многопроцессорного выполнения или ошибка защиты сети.
6 Библиотека требует отдельных сегментов данных для каждой задачи.
8 Недостаточно памяти для запуска приложения.
10 Ошибочная версия Windows.
11 Ошибочный выполняемый файл. Или это не приложение Windows, или ошибка в .exe файле.
12 Приложение спроектировано для другой операционной системы.
13 Приложение спроектировано для MS-DOS 4.0.
14 Неизвестный тип выполняемого файла.
15 Попытка запустить приложение, работающее только на более ранних версиях Windows.
16 Попытка запустить второй экземпляр приложения, содержащего сегменты данных, не помеченные "только для чтения".
19 Попытка запустить архивированный файл. Файл должен быть разархивирован, прежде чем его можно будет загрузить.
20 Ошибочный файл одной из DLL, требуемой для приложения.
21 Приложение требует 32-битного расширения Windows.
31 Нет приложения, связанного с файлом указанного типа, или нет файла, связанного с указанной операцией.
Параметры Operation, FileName, Parameters и Directory являются строками с нулевым символом в конце, т.е. строками типа PChar. Для Delphi 3 это не существенно, т.к. в ней по умолчанию используются строки с нулевым символом в конце. Поэтому в Delphi 3 вмес
то этих параметров можно использовать просто литеральные константы или строковые переменные. Но в Delphi 1 это приводит в ряде случаев к необходимости преобразования строк.

[Наверх]

Тема: Delphi

Если создать индекс для БД DBF с помощью запроса 'CREATE INDEX ...', а затем в другом запросе обращаться к этой базе, будет ли запрос использовать существующие индексы?


Ответ:

Будет. Если индекс создан он будет использоваться во всех запросах. Вообще-то индексы для того и создаются, чтобы ускорить выполнение запросов.

[Наверх]

Тема: Hard

У меня к вам такой вопрос: Посоветуйте мышку. Нужно качество, скорлинг, кнопок неважно скока( но не меньше двух), бесшумность нажатий. Как можно тише.


Ответ:

Genius Netscroll Optical (оптическая, PS/2+USB, 5 кнопок, скролл) юзаю второй год - не нарадуюсь..., правда стоит 20 у.е.

[Наверх]

Тема: Internet

Где можно достать гимн Лиги Чемпионов.Желательно конечно в мр3 , но можно и любой Винампо поддерживаемый формат.А если еще и слова будут то ваще рулеззз будет.


Ответ:

http://www.football.tomsk.ru/multimedia/music/lch.mp3
Гимн Лиги Чемпионов
Гимн Лиги Чемпионов рождался вместе с идеей создания группового турнира Кубка Европейских Чемпионов.
Композитор гимна - англичанин Тони Бриттен. Музыка и текст гимна Лиги Чемпионов успешно прошли утверждение УЕФА. В тексте данного гимна присутствует набор слов (фраз) - "Мы чемпионы", "Мы мастера" и т.д., исполненных на трех официальных языках европейской ассоциации - английском, французском и немецком.
Хит исполняется академическим хором церкви "St Martin's in the Fields", что располагается в Лондоне.
Музыкальное сопровождение - знаменитый Королевский филармонический оркестр.

[Наверх]

Тема: Local_Net

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

Ответ:

У меня решение такое: на машине с модемом стоит прокси-сервер WinRoutePro 4.2.1 настроенный таким образом, что дозвон осуществляет сам прокси. На компьютерах, из которых предполагается осуществлять включение-выключение Инета стоит упраляющий файл самого WinRoute позволяющий удаленно администрировать WinRoute, то есть включать-выключать Инет. Настраивается это очень легко, и описано в хелпе. К тому же, удаленным администраторам можно поставить права позволяющие только включать-выключать Инет и запретить видеть и изменять другие настройки прокси. Сам WinRoutePro 4.2.1 можно стянуть практически на любом файловом архиве. Если понадобится серийный номер, могу выслать.

[Наверх]

Тема: Local_Net

Как в WindowsXP Pro RU настроить что-бы она была одновременно в двух сетях: локальной и глобальной, причем через одну сетевую карту, и что-бы компы с локалки брали инет через нее. Инет на этой машине идет через хаб от прова с фиксированным одним IP-адресом.
При необходимости могу поставить Windows2000 Pro RU, если WinXP не имеет таких функций.


Ответ:

Вроде на ХР можно создавать виртуальные IP номера на одной сетевой карте! Но тут много разных тонкостей! Одна из них это то что карта должна обрабатывать сразу два потока данных причем сразу один входящий другой исходящий. Второе при подобном подключении достаточно большой риск несанкционированного доступа как к интернету так и из него!
Правильный способ поставить два интерфейса и настроить NAT для своей сети.

[Наверх]

Тема: MB

Мой компьютер собран на материнской плате M810LR (под процессоры AMD) ( http://www.pcchips.com.tw ) При включении компьютера, плата определяется как M810LR-H. Во всех обзорах пишут, что плата M810LR поддерживает только 200 MHz шину, а в инструкции к плате выделено 200/266 MHz. Можно ли программным путём определить поддерживает ли плата шину 266 MHz? И ещё вопрос, если вдруг плата не поддерживает 266 MHz, процессоры Athlon XP будут работать на шине 200 MHz?


Ответ:

В твоём случае лучший способ - это проверить на процессоре с внешней шиной 266. Это можно сделать при апгрейде - просто принести на фирму плату и сказать что купишь процессор если он подойдёт. Атлон действительно будет работать на 200 если твоя мамка не держит 266. Замечу что я в принципе не встречал ни одной мамки под DDR, которая не
поддерживала бы 266. В редких случаях этой возможности не было в БИОСе, но перепрошивка свежего БИОСа всё решала.

[Наверх]

Тема: MB

Марка материнской платы: 7VIA71A
Процессор: AMD-550
На матери стоит память 32мб линейка с микросхемами с двух сторон , без опозновательных знаков. Тест показывает что она работает как РС100 с ней она работает безупречно, устанавливаю РС100 32мб (микросхемы с двух сторон) во второй банк м
ашина зависает, а так же удаляю ту что стаяла там машина тоже зависает, ставлю РС133 на 64мб (микросхемы с одной стороны) без родной, машина неопределяет ее если в первый банк ставлю родную определяет 96мб, но так же зависает. Все линейки проверены на др
угой машине работают безупречно. Пытался перезаписать биос у меня версия АВ на сайте http://www.acorp.com.tw/common/english/bios/bvai.asp есть версия ВВ но у меня не получилось раскажите как правильно это делать? и почему у меня не работает память?


Ответ:

Во первых BIOS http://www.acorp.com.tw/common/bios/2m/7via71ab.exe
По пооду памяти: проверь, чтобы в BIOS у тебя стояло Автоопределение Memory speed setup is required through "Auto Con-figuration" in BIOS chipset Setup of BIOS
SOFTWARE. If several speed memorious are used, You must set Auto
Configuration to low. Example If both 50ns, 60ns are used, Please set Auto
configuration to 60 ns.

[Наверх]

Тема: PGP

Что есть такое DoS атака?


Ответ:

Вид атаки "отказ в обслуживании", от "Denial of Service" :)

[Наверх]

Тема: PHP

Пишу чат на РНР.
Пытаюсь решить задачу с показом определенного количества сообщений
и их скроллингом. В идеале хотелось бы осуществить следующий алгоритм:
- получаю текстовую строку (некие данные, а в конце символ \n)
- записываю текстовую строку в файл
- если количество строк >= 20, то:
- удаляю первую строку
В итоге должно получаться все довольно красиво, четко, беотказно и
быстро. Но вся трабла в том, что я не знаю как в РНР осуществить
подсчет количество строк в текстовом файле и удалить первую строку:-(
В справочниках таких функций нет, я читал исходники других чатов, там
фигурируют какие-то count и lines, откуда это они взяли, непонятно...
я пробовал сделать по аналогии, ничего не выходит:-(
Помогите, пожалуйста...
--
Best regards,
scan mailto:scan@pomorsu.ru


Ответ:

#Чтобы записать пишешь:
$base="messages.txt";
$file = fopen($base,"a");
fputs ($file,"$message\n");
fclose ($file);
#Подсчет строк:
#сразу будет условие
$base="messages.txt";
$lines=count($file);
if ($lines>=20) { #А вот удаление первой строки уже сложнее:
function deleteEntry() { $filecontents = file("messages.txt");
for ($i=0;$i<sizeof($filecontents);$i++) { if (chop($filecontents[$i]) == 1) { $filecontents[$i] = "";
$fp = fopen($filecontents, "w+");
for ($a=0;$a<sizeof($filecontents);$a++) { $fw = fwrite($fp, $filecontents[$a]);
}
}
}
}
}#закрылась if ($lines>=20)

[Наверх]

Тема: PHP

Как средствами php передать фомой и сохранить в файл какие-либо данные?


Ответ:

Форма создается средствами хтмл, например:
<form action=mail.php method=post>
<input name=mail type=text value="Твой e-mail" class=edit>
<input type=submit value=OK class=push>
</form>
этот кусок хтмла для рассылки, я его взял как пример.
Теперь главное - написать тот самый mail.php :
$fp = fopen("mail.txt", "a+");/*mail.txt - это файл в который пишем;
"а+" - это тип открытия файла(этот (а+) означает то, что если файл не
существует, он остается, а если существует, данные дописываются в
конец файла)*/
$fw = fwrite($fp, $mail."\n");/*в файл запишется переменная $mail, а
после нее символ окончания строки "\n"(обязательно); если нужно
написать не одну переменную, а больше, то напишем:*/
$fw = fwrite($fp, $mail . $eshe . $eshe2."\n");
fclose ($fp);/*закрытие файла для записи*/

[Наверх]

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

Используя MSComm 6.0 из С++ я научился принимать данные которые поступают на порт, но никак не могу что нибудь туда записать (я на 2 порт программой HyperTerminal посылаю текстовый файл и свободно принимаю всю информацию) при попытке записи в порт у
меня в выходном буфере пусто, я уже и задержки ставил и пробовал включать подтверждение связи, но ничего не происходит. В начале я указываю номер порта, затем открываю порт и пишу в свойство Output строку, сразу же не закрываю порт считываю его свойства
Output, OutBufferCount все пустое. Генерируется код события CommEvent = 4, CommID =644, 304, CDHolding = -1. Все это я делаю во встроенном С++ исмользуя свойства MSComm. С++ встроен в СКАДА систему WinCC и в нем есть специальные команды доступа к свой
ствам любых объектов с чтением все работает а вот с записью не получается. Может Вы подскажите какую либо последовательность действий которой можно добиться правильного результата.
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMX2ORBH4N
[Наверх]

Тема: Delphi

Имеется БД Dogovor.dbf договоров следующей структуры:
Prod string 2 //код продавца
Pokup string 2 //код покупателя
Dog_no numeric 6 //0 договора
DS_No numeric 3 //0 доп. соглашения
Summa numeric 12,2 //Сумма договора
Proc numeric 3 //% ставка
DatBeg date //дата заключения
DatEnd date //дата окончания
Из нее делается выборка действующих договоров и их доп. соглашений
SELECT *
FROM "Dogovor.dbf"
WHERE DatEnd<="1.10.2002" and DatBeg>"31.10.2002"
ORDER BY DS_NO DESC
и записывается в таблицу Temp.dbf
DbiMakePermanent(ResultQuery.Handle,PChar(DataBasePath+TempDbf),True);
Необходимо в таблицу NewDogovor.dbf выбрать только действующие
договора и всю их историю. Делаю так:
sqlInsPokupProd='INSERT INTO "NewDogovor.dbf" '+
'(Prod, Pokup, Dog_No, Ds_No, Summa, Proc, DatBeg, DatEnd) '+
'SELECT * '+
'FROM "Dogovor.dbf" '+
'WHERE Prod="%s" and Pokup="%s" and Dog_No=%d'#13#10;
sqlDelPokupProd='DELETE FROM "Temp.Dbf" '+
'WHERE Prod="%s" and Pokup="%s" and Dog_No=%d'#13#10;
TempTable.TableName:='Temp.Dbf';
TempTable.Open;
with TempTable do while not Eof do begin
Pr:=FieldByName('Prod').AsString;
Pk:=FieldByName('Pokup').AsString;
DN:=FieldByName('Dog_No').AsInteger;
ResultQuery.SQL.Text:=Format(sqlInsPokupProd,[Pr,Pk,DN]);
ResultQuery.ExecSQL;
DelQuery.SQL.Text:=Format(sqlDelPokupProd,[Pr,Pk,DN]);
DelQuery.ExecSQL;
TempTable.Refresh;
end;
Т.к. цикл выполняется примерно 700 раз, то это длится довольно долго. При создании индексов для БД "Dogovor.dbf" работает еще медленнее. Проблема в том, что это происходит при запуске программы и программа грузится очень долго.
ВОПРОС: Можно ли как-нибудь ускорить эту процедуру?
Пробовал менять строку
'WHERE Prod="%s" and Pokup="%s" and Dog_No=%d'
на 'WHERE Prod=:Prod and Pokup=:Pokup and Dog_No=:Dog_No'
и работать с параметрами, т.е. подготовить запрос до цикла, вызвать один раз Prepare, а в цикле только выполнять присвоения
ResultQuery.ParamByname('...').As...:=...;
DelQuery.ParamByname('...').As...:=...;
но после первого прохождени цикла при второй попытке выполнить ResultQuery.ExecSQL выскакивает сообщение "Неверный параметр".
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMW3IGGA29

Как Delphi-программой нажать пункт меню другой программы?
Например, надо кликом по Button1 нажать в Word'е: Правка \ Найти.
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMX51K5729

При попытке обновить (выполнить метод Refresh) запрос на выборку 'select ...' происходит ошибка 'Can not refresh row. (No refresh query)'. Используется компонент TIBQuery, InterBase 5. В чем может быть проблема?
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMW3IGD92

Версия Delphi 3 Client/Server
Можно ли в Delphi создать окошко подобно в MS Word с линейками?
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMW2I68SN
[Наверх]

Тема: Linux

При автомонтировании (демон automount) cdrom'а вместо русских букв вопросы, хотя при прямом монтировании (командой mount) всё ОК. Причем, при автомонтировании дискеты русские буквы есть. Дистр --- ALTLinux Master.
<--/etc/auto.master-->
/mnt/auto /etc/auto.tab --timeout=5
<--end of /etc/auto.master-->
<--/etc/auto.tab-->
cdrom -fstype=auto,umask=000 :/dev/cdrom
floppy -fstype=auto,umask=000 :/dev/floppy
<--end of /etc/auto.tab-->
<--/etc/fstab--> <--только строчки, касающиеся floppy и cdrom
/dev/cdrom /mnt/cdrom auto user,iocharset=koi8-r,codepage=866,ro,noauto 0 0
/dev/floppy /mnt/floppy auto user,iocharset=koi8-r,codepage=866,noauto 0 0
<--end of /etc/fstab-->
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMW2I6Q76J
[Наверх]

Тема: Prog

Как добавить иконку или меню в ie 55,для просмотра станицы или изображения сдудушего после текущего
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMW2I67H7
[Наверх]

Тема: SoundCards

Windows98se. Звукоая карточка SB Live! Value. Нужно организовать эмуляцию SB16 (т.е. чтобы карточка функционировала под чистым ДОС). Проблема в том, что после инсталляции драйверов с прилагаемого CD на винте не оказалось ни одного нужного для эмуляции (согласно мануалу) файла. Не были сделаны и изменения в autuexexc.bat . На диске я эти
файлы тоже не нашел. Скачал с сайта свежий апдейт для драйвера - бесполезно. Подскажите, пожалуста, где можно скачать необходимые файлы. Да и вообще, что это за безпредел :-)?
Ответить: mailto:expert@soobcha.ru?subject=Rass_UMV46TGS6N
[Наверх]

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

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

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

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

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

В избранное