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

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


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


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 341
от 05.06.2004, 08:40

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1601
Отправлено ответов: 3722
Активность: 232.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Boriss
Статус: Профессиональный
Общий рейтинг: 163.56
URL: Программирование на Паскале
[Подробней >>]
CrackLab
Статус: Опытный
Общий рейтинг: 138.41
[Подробней >>]
sir henry
Статус: Профессиональный
Общий рейтинг: 163.01
[Подробней >>]
 
Pawel
Статус: Профессиональный
Общий рейтинг: 153.13
[Подробней >>]
CJ
Статус: Опытный
Общий рейтинг: 122.34
URL: Персональный сайт Каратецкого Кирилла.
Телефон: +375297353706
[Подробней >>]
samum2000
Статус: Профессиональный
Общий рейтинг: 129.98
URL: Samums home page
[Подробней >>]
 
vitya
Статус: Профессиональный
Общий рейтинг: 109.3
[Подробней >>]
Snowm@n
Статус: Опытный
Общий рейтинг: 112.02
[Подробней >>]
THE_PRO
Статус: Профессиональный
Общий рейтинг: 134.49
URL: THE_PRO
Телефон: (994 +12) 989647
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1578. Здравствуйте, уважаемые эксперты! Подскажите пожалуйста, как поступить: в моей программе используетс... (ответов: 3)
Вопрос № 1579. Здравствуйте! Есть процедура (в приложении), скачивающая файл с указанного узла и сохраняющая его в ... (ответов: 3)
Вопрос № 1580. Здраствуйте. Есть один нехороший компонент который проверяет запущена ли Дельфи и если не запущена п... (ответов: 6)
Вопрос № 1581. Здравствуйте, уважаемые эксперты! По поводу вопроса 1578. Что такое потоки я знаю, применять их умею... (ответов: 3)
Вопрос № 1582. Доброе время суток! Вопрос: Каким образом реализовать в Delphi проверку существования e-mail (почтов... (ответов: 2)
Вопрос № 1583. Уважаемые эксперты! Мне необходимо создать небольшое приложение для работы с XML файлом. Т.е. чтение... (ответов: 1)
Вопрос № 1584. В дополнение к вопросу 1581: Для sir henry: Хорошо, напишу. Хотя шансов на успех мало - не пойму. Хо... (ответов: 1)
Вопрос № 1585. В дополнение к вопросу 1581: Для CrackLab: ожидание происходит в процессе выполнения пустого цикла (... (ответов: 1)
Вопрос № 1586. В дополнение к вопросу 1578: Для Boriss: с самим процессом копирования проблем нет - све копируется.... (ответов: 1)
Вопрос № 1587. что такое ERROR 32??... (ответов: 6)
Вопрос № 1588. Добрый вечер, вопрос : 1) Есть форма на ней грид, где отображен список набранных всеми пользователям... (ответов: 2)
Вопрос № 1589. Следующий вопрос : Накладная состоит из 2-х таблиц (шапка(FP1_1) и список к шапке(FP1_2). Так вот : ... (ответов: 1)
Вопрос № 1590. Здравствуйте уважаемые эксперты! Как запутстить файл из директории где проект. Спасибо... (ответов: 5)
Вопрос № 1591. Добрый день! Подскажите пожалуйста с чего начать! Дано: Чужой сайт, на котором надо заполнять формы ... (ответов: 1)

Вопросов: 14, ответов: 36


 Вопрос № 1578

Здравствуйте, уважаемые эксперты!
Подскажите пожалуйста, как поступить: в моей программе используется длительный цикл по вычислениям и обработке файлов. Сам цикл работает нормально. Но когда он работает, все остальные программы, запущенные в этот момент, работать перестают (или очень медленно работают). Использовать потоки нежелательно. Пробовал понижать приоритет самой программы через диспетчер задач (Win2000 Pro), приоритет понижается, ситуация не меняется - все также медленно работает.
Может есть ещё какой-нибудь способ?
Среда разработки - C++ Builder 5
Большое спасибо всем откликнувшимя.



Вопрос отправлен: 31.05.2004, 12:58
Отправитель: Alexandr

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Доброе время суток, Alexandr!
Увы, нечаянно не на ту кнопку при ответе на вопрос № 1581 от читателя Alexandr нажал. Но ничего, отвечу "этому".
Все же потоки (с их приритетами, WaitForSingeProcess) будут являться наилучшим решением проблемы.
А так ... Timer Вы, видимо, уже пробовали...
Но как понял, что во время копирования проблемы? Тогда может писать кусками: захватывать два файла, и по частям через FileStream - работать будет дольше, но может процессор освободит?

Ответ отправлен: 31.05.2004, 17:45
Отправитель: Boriss


Отвечает CrackLab

Добрый день, Alexandr!
А что конкретно вы делаете в цикле что так нагружает процессор? Какой у вас компьютер? Почему не хотите использовать потоки (не думаю что это сильно изменит ситуацию, но попробовать можно)?

Ответ отправлен: 31.05.2004, 16:21
Отправитель: CrackLab


Отвечает sir henry

Доброе время суток, Alexandr!
Вообще-то потоки для подобных случаев и планировались, как средство деления времени процессора между задачами. Примерно, поток - часть времени процесора.
Если кроме потоков, то нужно посмотреть, что включено в тело цикла. Может быть есть какая-то опреация, которая и тянет процессор на себя.

Ответ отправлен: 31.05.2004, 15:11
Отправитель: sir henry


 Вопрос № 1579

Здравствуйте!
Есть процедура (в приложении), скачивающая файл с указанного узла и сохраняющая его в текущем каталоге под заданным именем. Но при работе процедуры происходит исключение (I/O Error 1784). Ошибка происходит при работе BlockWrite(f, Buffer, BufferLen). Помогите понять в чем дело, т.к. сам, увы, понять не могу.
Спасибо!


Приложение:


Вопрос отправлен: 31.05.2004, 15:26
Отправитель: Alex

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Приветствую Вас, Alex!
Ну еее! Передайте четвертый параметр ссылка на переменную типа Integer - если он есть, то туда записывается, сколько прочитано (BlockRead) или записано (BlockWrite). Если этого четвертого параметра нет, как у Вас, то и получается ...

Ответ отправлен: 31.05.2004, 17:34
Отправитель: Boriss


Отвечает CrackLab

Приветствую Вас, Alex!
У меня все работает нормально. Проверял на нескольких файлах. Какие параметры вы передаете функции?

Ответ отправлен: 31.05.2004, 16:09
Отправитель: CrackLab


Отвечает sir henry

Приветствую Вас, Alex!
Сообщение к ошибке гласит (winerror.pas) "Ваш буфер не годится для этой операции".
Вы уверены что правильно используете BlockWrite()?
Если Вы используете для чтения InternetReadFile, то я бы Вам посоветовал для записи его "пару" WriteFile:
function WriteFile(hFile: THandle;
const Buffer;
nNumberOfBytesToWrite: DWORD;
var lpNumberOfBytesWritten: DWORD;
lpOverlapped: POverlapped): BOOL;

Ответ отправлен: 01.06.2004, 06:24
Отправитель: sir henry


 Вопрос № 1580

Здраствуйте.
Есть один нехороший компонент который проверяет запущена ли Дельфи и если не запущена программа не запускается. Как сделать программу которая будет обманывать этот компонент т.е. притворяться Дельфей.(Или какие-нибудь другие решения). Заранее спасибо.



Вопрос отправлен: 31.05.2004, 15:43
Отправитель: rOOse (ruslan377@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Доброе время суток, rOOse!
Тут несколько путей решения:
1) залезть в компонент - и посмотреть, когда выдается результат проверки с тем, чтобы его исправить. Для этого даже исходного кода не надо - дизассемблер хороший поможет Вам
2) Написать программу, которая имеет имя заголовка как Delphi. Если "тот" компонент проверяет только по имени заголовка (FindWindow), то пройдет
3) посотреть, с помощью FileMon и RegMon - куда обращается компонент, определяя, запущен ли Delphi

Ответ отправлен: 31.05.2004, 17:30
Отправитель: Boriss


Отвечает CrackLab

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

Ответ отправлен: 31.05.2004, 15:54
Отправитель: CrackLab


Отвечает Pawel

Добрый день, rOOse!
Это будет зависеть от компонента. Смотря что проверяется и т.д.

Ответ отправлен: 31.05.2004, 16:09
Отправитель: Pawel


Отвечает CJ

Приветствую Вас, rOOse!
А ты сначала узнай каким методом компонент ищет дельфу.

Ответ отправлен: 31.05.2004, 16:32
Отправитель: CJ


Отвечает sir henry

Здравствуйте, rOOse!
Непонятный вопрос. Программа должна обманывать в чем? Что Дельфи запущен (если он не запущен) или что Дельфи не запущен (когда он запущен)?
В любом случае надо знать, по какому принципу работает компонент, иначе это будет гадание на кофейной гуще :).

Ответ отправлен: 01.06.2004, 06:28
Отправитель: sir henry


Отвечает samum2000


Доброго времени суток, rOOse!
Я так понял, что речь идет о платной компоненте? Тогда есть несколько путей:
1. Самый "правильный" - это просто заплатить автору денег (он ведь не зря старался).
2. Если хочешь делать эмулятор, посмотри здесь http://dore.on.ru/articles/delphi_crack.zip.
3. Можно пропатчить код компоненты (*.dpl файл в частности), т.е. дизассемблировать его, разобраться что к чему и изменить часть комманд.
4. И, наконец, можно просто пропатчить твой код - т.е. скомпилировать программу и посторить то же, что и в пункте 3, только для *.exe.
Внимание! Три последних варианта могут повлечь за собой очень неприятные последствия, особенно если ты будешь распространять свою программу, так что лучше
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 02.06.2004, 14:28
Отправитель: samum2000


 Вопрос № 1581

Здравствуйте, уважаемые эксперты!
По поводу вопроса 1578.
Что такое потоки я знаю, применять их умею. Проблема в руководителе нашего отдела, а также прочих сортудниках числом 3 штуки (женщины). Их тоже нужно этому учить, но не хочется.
В цикле ничего особенного не происходит, там программа копирует файлы, обрабатывая их (либо архивация, либо переименование) и ждет, пока другая программа (как раз все остальные ее делают) их обработает. После обработки стирается файл-флаг (пока он есть, програма ждет) и происходить перемещение обработанных файлов в каталог для резервных копий. Вот в момент ожидания нагрузка на процессор 100%.
На более мощном компьютере положение поправилось (пробовал на Pentium III - 800), но на моем рабочем и тестовом (PII - 333, 128Ram, Win2000Pro) - 100%. Все косятся на меня.
А у программы даже интерфейса нет, он и не нужен.



Вопрос отправлен: 31.05.2004, 17:05
Отправитель: Alexandr

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Приветствую Вас, Alexandr!


Ответ отправлен: 31.05.2004, 17:38
Отправитель: Boriss


Отвечает CrackLab

Здравствуйте, Alexandr!
Как происходит ожидание? В цикле проверяется существование файла флага? или как?

Ответ отправлен: 31.05.2004, 17:28
Отправитель: CrackLab


Отвечает sir henry

Доброе время суток, Alexandr!
Тогда нужно внимательно рассмотреть именно момент ожидания, каким образом этот момент организуется.
А потоки вещь хорошая. Чтобы убедить в этом остальных, составьте программку-пример, которая фрматирует дискету и копирует большой файл, с графическим представлением прогресса. Клянусь своей треуголкой, эффект будет потрясающий :)).

Ответ отправлен: 01.06.2004, 06:34
Отправитель: sir henry


 Вопрос № 1582

Доброе время суток!
Вопрос:
Каким образом реализовать в Delphi проверку существования e-mail (почтового ящика)?



Вопрос отправлен: 01.06.2004, 08:43
Отправитель: Александр

[Следующий вопрос >>] [Список вопросов]

Отвечает samum2000


Приветствую Вас, Александр!
Понимаете, если бы всё было так просто, то тогда мы не знали бы куда деваться от спама. На самом деле есть команда в протоколе SMTP? которая должна проверять, существует ли такой ящик на сервере, но на большинстве серверов она отключена именно для борьбы со спамом.
Так что нам остается только отправить письмо и ждать ответа - если придет что-вроде "this message can't be delivered" - значит не существует.
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 03.06.2004, 11:51
Отправитель: samum2000


Отвечает Boriss

Приветствую Вас, Александр!
Не нашел как. Видимо только послать и ждать ответа.
Как посылать из Delphi интересует. Если "да", то напишите

Ответ отправлен: 02.06.2004, 18:52
Отправитель: Boriss


 Вопрос № 1583

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



Вопрос отправлен: 01.06.2004, 09:11
Отправитель: Алексей

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Приветствую Вас, Алексей!
Вот сегодня нашел ссылки книг, но скачать пока не могу :((
а следовательно и скзать, что там
http://shelek.org.ru/books/xml/xmlforwww.zip
http://shelek.org.ru/books/xml/xmlbyex.zip

Ответ отправлен: 02.06.2004, 18:57
Отправитель: Boriss


 Вопрос № 1584

В дополнение к вопросу 1581:
Для sir henry: Хорошо, напишу. Хотя шансов на успех мало - не пойму. Хотя сегодня как раз появился дируктор, схожу к нему... Может повезёт...


Приложение:


Вопрос отправлен: 01.06.2004, 13:05
Отправитель: Alexandr

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Приветствую Вас, Alexandr!
Не понял????? <8-O
А если этот файл существует всегда, то прога так из спячки и не выйдет?
Надо что-нибудь более подробное :-).

Ответ отправлен: 02.06.2004, 00:40
Отправитель: sir henry


 Вопрос № 1585

В дополнение к вопросу 1581:
Для CrackLab: ожидание происходит в процессе выполнения пустого цикла (см. приложение)


Приложение:


Вопрос отправлен: 01.06.2004, 13:03
Отправитель: Alexandr

[Следующий вопрос >>] [Список вопросов]

Отвечает CrackLab

Доброе время суток, Alexandr!
Странно, у меня ничего не тормозит при выполнении этого цикла. У меня правда Athlon XP 2200+... Тормозит только само приложении, как бы повисает намертво, но остальная работа ОС никак не замедляется. В любом случае при использовании потока у меня и сама программа стала работать абсолютно нормально. Так что советую попробовать использовать поток для вашего цикла (возможно не только этого, но и всего цикла работы с файлами). Работать с потоками можете либо через API CreateThread либо через готовый класс TThread.
Если будут вопросы по потокам - обращайтесь.

Ответ отправлен: 01.06.2004, 15:28
Отправитель: CrackLab


 Вопрос № 1586

В дополнение к вопросу 1578:
Для Boriss: с самим процессом копирования проблем нет - све копируется. Проблема с нагрузкой на процессор (100%) во время ожидания. Само ожидание происходит как в приложении


Приложение:


Вопрос отправлен: 01.06.2004, 13:04
Отправитель: Alexandr

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Добрый день, Alexandr!
Не уверен, что нашел истину, но в описании процессора Intel нашел фразу в примечаниях, что команда API Sleep() не дает гарантии, что процессор будет освобожден для других задач :((


Приложение:

Ответ отправлен: 01.06.2004, 19:49
Отправитель: Boriss


 Вопрос № 1587

что такое ERROR 32??



Вопрос отправлен: 01.06.2004, 13:56
Отправитель: Лёха

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Добрый день, Лёха!
Ошибка номер 32.

Ответ отправлен: 01.06.2004, 14:02
Отправитель: vitya


Отвечает Boriss

Приветствую Вас, Лёха!
Вот только нашел в модуле Windows упоминание:
HINSTANCE_ERROR = $20;
Но все же Вам придется написать, когда и при каких обстоятельствах Вы получили такое сообщение, если только это Вас интересует

Ответ отправлен: 02.06.2004, 19:17
Отправитель: Boriss


Отвечает Snowm@n

Приветствую Вас, Лёха!
С бусурманского на великий и могучий переводится как "ОШИБКА 32" :) А вообще вопросы надо бы поконкретнее задавать - может быть это ошибка времени выполнения, либо компиляции, либо еще чего... Эксперты же не телепаты :)

Ответ отправлен: 01.06.2004, 20:50
Отправитель: Snowm@n


Отвечает CJ

Доброе время суток, Лёха!
Это ошибка номер 32. :)))

Ответ отправлен: 01.06.2004, 16:47
Отправитель: CJ


Отвечает sir henry

Здравствуйте, Лёха!
А подробнее? Где взяли такое чудо?

Ответ отправлен: 02.06.2004, 00:53
Отправитель: sir henry


Отвечает samum2000


Приветствую Вас, Лёха!
Это ошибка 32. Если хотите знать больше, то напишите где, когда, и при каких обстоятельствах вы с ней познакомились :) Подробнее надо вопросы задавать, тогда и ответы будут подробные.
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 02.06.2004, 20:18
Отправитель: samum2000


 Вопрос № 1588

Добрый вечер,
вопрос :
1) Есть форма на ней грид, где отображен список набранных всеми пользователями документов. Список должен интерактивно обновляться и пополняться созданными документами.Каким образом сделать интерактивное обновление информации там где надо ? (использую IBX-компоненты)
Понимаю что будет тормозить при большом количестве записей, но в селекте стоит ограничение на временной диапазон - документы за 1 день. Максимум в день может создаваться 30-35 документов. Я установил на форме Таймер и делаю так : запоминаю текущий ID документа, затем дизэйблконтролс на IBQuery, метод close,метод open, энэйблконтролс и локейтом ищу ID.Понимаю что тормозит но может кто-нить посоветует более разумное решение. Пробовал
commitretaining в транзакции, но даже подтвержденные записи не появляются(прочитал в книге, что commitretaining существенно кушает ресурсы сервера, так ли это ?)
Установки транзакции пробовал разные. Помогите разобраться



Вопрос отправлен: 01.06.2004, 17:14
Отправитель: jiny (zhas-trz@tarazinfo.kz)

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Здравствуйте, jiny!
Думаю, TIBDataSet.Refresh решит Ваши проблемы.

Ответ отправлен: 02.06.2004, 01:22
Отправитель: sir henry


Отвечает THE_PRO

Добрый день, jiny!
Mojet IBTable.Refresh

Ответ отправлен: 02.06.2004, 12:37
Отправитель: THE_PRO


 Вопрос № 1589

Следующий вопрос :
Накладная состоит из 2-х таблиц (шапка(FP1_1) и список к шапке(FP1_2).
Так вот : при создании таблицы создаю реальную таблицу на серваке через create(TmpFP1_2), после того как пользователь забивает
товары в tmpFP1_2, перебрасываю данные в постоянную таблицу списка (FP1_2), после закрытия окна набора товаров, tmpFP1_2 - уничтожается. Проблема в следующем :
пробовал создавать триггеры к TmpFP1_2 через TIBQuery компонету(пробовал и с "SET TERM !!" и без него) - не получается, попробовал через TIbSQL - так же, присоветуйте как создать триггеры "на лету", программно.



Вопрос отправлен: 01.06.2004, 17:21
Отправитель: jiny (zhas-trz@tarazinfo.kz)

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Добрый день, jiny!
Триггеры создаются не просто так, про запас, а для определеной таблицы. Следовательно, эта таблица уже должна существовать и быть готой к применени. Лишь после этого можно создавать триггеры.
Напишите в базе встроенную процедуру, которая:
1. Создает нужную таблицу,
2. Создает триггер для этой таблицы.

Ответ отправлен: 02.06.2004, 01:11
Отправитель: sir henry


 Вопрос № 1590

Здравствуйте уважаемые эксперты!
Как запутстить файл из директории где проект.
Спасибо



Вопрос отправлен: 01.06.2004, 20:37
Отправитель: Владимир

[Следующий вопрос >>] [Список вопросов]

Отвечает CJ

Здравствуйте, Владимир!
А какой именно файл? Поточнее можно.

Ответ отправлен: 01.06.2004, 22:51
Отправитель: CJ


Отвечает Snowm@n

Доброе время суток, Владимир!
WinEXEC, если вы это имели в виду.

Ответ отправлен: 01.06.2004, 21:02
Отправитель: Snowm@n


Отвечает Boriss

Добрый день, Владимир!
?????????!
ShellExecute
WinExec
CreateProcess
.bat - файл или просто щелкнуть на иконке файла :))
Вопрос то формулировать надо ...

Ответ отправлен: 01.06.2004, 21:03
Отправитель: Boriss


Отвечает sir henry

Доброе время суток, Владимир!
Просто запускайте его и все. Или Вас интересует технология запуска экзешника из собственой программы?

Ответ отправлен: 02.06.2004, 01:04
Отправитель: sir henry


Отвечает THE_PRO

Добрый день, Владимир!
WinExec
ili
ShellExecute
"Path" formiruyem tak:
ExtractFilePath(Application.Exename)+'FileName.Exe';

Ответ отправлен: 02.06.2004, 12:33
Отправитель: THE_PRO


 Вопрос № 1591

Добрый день!
Подскажите пожалуйста с чего начать!
Дано: Чужой сайт, на котором надо заполнять формы ввода данными через браузер.
Как написать прогу на Delphi, которая бы могла брать свои локальные данные(не важно откуда, хоть из текстового файла) и запихивать их в текущее открытое окно браузера в соответствующие им Editы. Если есть исходники аналогичных программ(типа автозаполнялки рег. форм в Инете), то поделитесь пожалуйста ссылкой!



Вопрос отправлен: 02.06.2004, 08:39
Отправитель: Hunter

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Доброе время суток, Hunter!
Если знать, какой протокол используется этой формой ввода, то нет слишком больших проблем. Начните с CGI, POST, GET (описывается в учебниках и др. по Java, например)

Ответ отправлен: 02.06.2004, 16:23
Отправитель: Boriss



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (20)
C / C++ (14)
Builder / Delphi (15)
Pascal (19)
Basic / VBA (2)
Java / JavaScript (4)
PHP (12)
Криптография (7)
WinAPI (9)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (49)
"Железо" (30)
Поиск информации (16)
Администратору
Windows NT/2000/XP (22)
Linux / Unix (8)
Юристу
Гражданское право (12)
Семейное право (9)
Трудовое право (12)
КоАП (8)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

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


В избранное