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

Программирование. Форум !!!

За 2004-11-28

Re[3]: VC++

Здравствуйте !

> Собсна задачи, как таковой нету, мне надо найти общие принципы работы
> таких приложений. Но в принципе, сервера БД вполне бы подошли.
> Я ничего конкретного не пишу, хочу научиться, разобраться.

Ну... если работать с серверами БД, то тут все достаточно просто
(в плане написания клиентского приложения) - есть куча средств.
Можно использовать те же самые ODBC, DAO, ADO, и.т.д. Это
надо смотреть хелп по конкретному средству. Единственное что здесь может
быть интересного - асинхронное обновление данных на клиенте. Но и тут
все просто - либо вынести в поток механизм получения данных, либо
пользоваться асинхронными средствами библиотек работы с данными.

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

Например, есть 2 приложения. Одно - создает некоторое окно и цикл
обработки сообщений. Второе - ищет окно первого приложения и, если
находит - шлет первому приложению сообщение. Все. Это 2 приложения -
сервер и клиент :)

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

Для примера реализации сервера и клиента можно посмотреть пример
в семплах MSDN - исходники чата. Он сделан на сокетах.
Проекты называются, кажется CHATSRVR - сервер и CHATTER - клиент.
Но там - все просто.

З.Ы. Кстати, про организацию пула потоков можно почитать на RSDN.ru -
там статья есть.

--
С уважением, Вахтуров Виктор.

Номер выпуска : 3840
Возраст листа : 433 (дней)
Количество подписчиков : 508
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/271833
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru?subject=comp.soft.prog.prog

http://subscribe.ru/ http://subscribe.ru/feedback

   2004-11-28 23:49:21 (#271833)

Re: Задачка, блин

Здравствуйте, Василий.

Вы писали 27 ноября 2004 г., 16:04:40:

ВП> Собсно сабж:
ВП> // 3.Дан исходный текст программы на языке Паскаль.
ВП> // Программа содержит:
ВП> // а) раздел объявлений (описание целочисленных переменных);
ВП> // б) тело программы, которое может включать операторы присваивания и цикла
ВП> while.
ВП> // В правой части оператора присваивания может стоять вещественная или
ВП> // целочисленная константа.
ВП> // Синтаксис входной программы соответствует правилам, принятым в языке Паскаль.
ВП> // Необходимо написать программу, которая будет анализировать правильность
ВП> // программы, а при наличии ошибок выводить номер строки и символа, где
встречена

ВП> // ошибка, а также тип ошибки. Для анализа необходимо составить таблицу
ВП> // идентификаторов.

ВП> Может кто-нить помоч решить?

А на каком языке решать? Тоже паскаль?

   2004-11-28 16:56:10 (#271660)

TIdFTP Delphi 7

Здравствуйте, progs.

Какой метод у компонента TIdFTP скачивает файл?

   2004-11-28 16:55:59 (#271659)

Re: Access - VBA

Госпожа Галина Стецик,



Best regards,

At 2004-11-24, 23:39:19 you wrote: >Проблема заключается вот в следующем:
>необходимо организовать поиск в некоторой таблице по нескольким полям (от 1-7).

>Т.е. на форме находятся семь текстовых полей и по введенным значениям в любых

>из этих полей (это может быть 2, 3, ... или даже все 7) при нажатии на кнопку,

>если в таблице найдены записи удовлетворяющие одновременно всем заданным полям,

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

>что-то никак. Так что чем можете помогите.
>И еще вопрос, есть ли в Access возможность записи макроса по произведенным действиям.


Наиболее простым, можно сказать примитивным, решением Вашей проблемы было бы,
по-моему, выполнение следующих действий в указаваемой очерёдности:

1)учреждение ленточной формы для представления исходной таблицы

при этом следует отметить, что, поскольку в Вашей таблице многовато полей, чтобы
представлять их "в одну строчку", то в этой таблице выводить только ключевые
и наиболее информативные (для "юзверя") поля - С ОСТАЛЬНЫМИ ПОЛЯМИ ЭТОЙ ТАБЛИЦЫ
ВСЕ РАВНО ТОЖЕ МОЖНО РАБОТАТЬ ПРОГРАММНО!

2)учреждение таблицы для получаемых записей и такой же формы как в пункте 1 для
таблицы получаемых записей

3)учреждение в ленточной форме (пункт1) кнопки и процедуры реакции на её нажатие,
в которой программируется следующий псевдокод

ПОИСК ЗАПИСЕЙ ПО УСТАНОВЛЕННЫМ ТРЕБОВАНИЯМ
Предварительная отработа параметров
ЦИКЛ-ПОКА не обнаружен конец таблицы
Обращение к очередной строке таблицы в текущей ленточной форме
Определение значения логического выражения, представляющего требования к искомой
записи
ЕСЛИ требования удовлетворены
Занесение текущей записи в таблицу найденных записей (проще всего - обращением
к SQL через runSQL)
Учёт существования требуемых записей
ВСЕ-ЕСЛИ
ВСЕ-ЦИКЛ
ЕСЛИ требуемых записей не найдено
Выдача соответствующего сообщения
ИНАЧЕ
Обращение к ленточной форме для найденных записей (пункт 2)
ВСЕ-ЕСЛИ
ВСЕ-ПОИСК ЗАПИСЕЙ ПО УСТАНОВЛЕННЫМ ТРЕБОВАНИЯМ


Что обезопасить себя от всяческих "незадокументированных особенностей" включите
в "предварительную отработку переметров" переход на конец таблицы (acNewRec)
и на первую запись (acFirst) и делайте всё это через "On Error Resume Next" -
я подразумеваю, что переходы в таблице Вы будете делать через GoToRecord для
текущей ленточной формы.

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

3)определите в ленточной форме для найденных записей реакцию на Enter на текущей
строчке как переход к уже форме-копии из предыдущего пункта для текущей записи


НЕДОСТАТКИ ПРЕДЛАГАЕМОГО РЕШЕНИЯ
1) медлдительность
2)возможный эффект "вырви глаз" для больших таблиц - при отработке процедуры
пункта 3 курсор будет перемещаться по таблице, которая может при этом сильно
дёргаться

ПРЕИМУЩЕСТВА
1)сравнительная простота реализации
2)абсолютная надёжность реализации независимо от используемой версии Access

3)возможность следить за процессом поиска - полезно при отладке и приятно некоторым
"юзврям"

Что касается вопроса о макросе...
Access более ориентирован на реализацию процедур как реакцию на "нажатие" виртуальных
кнопок: если что-то требуется регулярно делать - "рисуйте" форму, "тавте"туда
"кнопочку" и "заводите" по нее процедуру - но это моё личное мнение.
С уважением, Приходько



Номер выпуска : 3836
Возраст листа : 433 (дней)
Количество подписчиков : 508
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/271641
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru?subject=comp.soft.prog.prog

http://subscribe.ru/ http://subscribe.ru/feedback

   2004-11-28 16:03:06 (#271641)

Re: Задачка, блин

Здравствуйте !

> // 3.Дан исходный текст программы на языке Паскаль.
> // Необходимо написать программу, которая будет анализировать
> правильность
> // программы, а при наличии ошибок выводить номер строки и

Гм... Ну, в Вашем случае все достаточно тривиально - надо писать
лексический и синтаксический анализатор для паскаля. Причем задача
упрощается тем, что не надоо искать все ошибки, необходимо выдать
только первую (не надо производить анализ символов восстановления,
производить откаты, и.т.д).

С чего следует начать:

1. Написать (построить самому/найти где то) БНФ для паскаля
(для стандартного синтаксиса, или только Вашего подмножетсва).
2. По БНФ построить LL1 грамматику (можно сначала построить
естесственную грамматику, а по ней - LL1).

Потом надо будет:

1. Написать лексический анализатор. Программу/процедуру
которая входной поток текста (файл/строку/поток) перегоняет
в другую форму - в форму списка лексемм (опять же - в строку
или файл заносит - не важно).

Для текста:
if(a = b) then

Список лексемм выглядит примерно так:
if 4
( 5
a 10
= 6
b 10
) 5
then 4

То есть он устанавливает соответствие лексемм их классу (цифры).
Например (см. выше) ключевые слова обозначаются классом 4,
скобки - классом 5, идентификаторы - классом 10, операции классом 6.

2. По этой LL1 грамматике составить алгоритм синтаксического разбора
(метод рекурсивного спуска в Вашем случае - самое то).
Алгоритм синтаксического разбора принимает на входе список лексемм и
используя идентификаторы классов лексемм проверяет корректность
кода.
Подчеркиваю, что алгоритм является файктически реализацией правил
грамматики языка.
Можно, кстати, алгоритм и по БНФ написать.

Еще, есть вроде, какие то книги... Знаю только одну (но не знаю
насколько хороша - не читал):

А. В. Костельцев "Построение интерпретаторов и компиляторов".

--
С уважением, Вахтуров Виктор.

Номер выпуска : 3834
Возраст листа : 433 (дней)
Количество подписчиков : 508
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/271553
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru?subject=comp.soft.prog.prog

http://subscribe.ru/ http://subscribe.ru/feedback

   2004-11-28 11:31:20 (#271553)

Re: VC++

Здравствуйте !

> Подскажите пожалуйста, где можно найти электронную литературу по
> программированию клиент-серверных приложений.

Гм... а не могли бы Вы несколько поподробнее обрисовать задачу ?
Просто тогда ответить было бы проще. Может, Ваша задача достаточно
проста, может, Вас интересует какой то конкреьный тип серверов
(как сервера БД, или http, ftp, и.т.д сервера).

--
С уважением, Вахтуров Виктор.

Номер выпуска : 3833
Возраст листа : 433 (дней)
Количество подписчиков : 508
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/271550
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru?subject=comp.soft.prog.prog

http://subscribe.ru/ http://subscribe.ru/feedback

   2004-11-28 11:18:07 (#271550)