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

Интернет для Delphi-программиста


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

Интернет для Delphi программиста.

Выпуск : № 16


Здравствуйте уважаемые подписчики рассылки "Интернет для Delphi программиста". Данная рассылка предназначена для всех кого интересует Delphi, здесь будут выкладываться ссылки на различные ресурсы интернета так или иначе связанные с Delphi: книги, исходники, программы... Изучайте Delphi один из лучших языков программирования!!!


ЗАДАТЬ ВОПРОС :

Правила рассылки: 
1. Не присылайте ответов на вопросы типа "да, нет".  
2. Если отвечаешь на вопрос - то отвечай подробно с примерами (желательно с исходником примера).
3. Тема вопросов - программирование на Delphi.
Внимание авторам: - Я не указываю ваши адреса из-за спама, но кто хочет, чтобы его email был - пишите, иначе только имя.
Отправить вопрос


Новые вопросы.


Вопрос № 21 задаёт: Адександр Журавлёв
 Здравствуйте. У меня такая проблема. Как сделать так, чтобы текст, 
вводимый с Edit по нажатии кнопки находил в массивах соответствующие 
ответы по ключевым словам и выводил эти ответы в Listbox или Memo? 
Неплохо было бы привести пример.

Ответы.

Вопрос № 10 задаёт: Dashutka Ответить
 Привет всем!
Хотела бы попросить помощь, делаю программу в которой запись, содержащася сведения об учениках класса: фамилия, имя, отчество, класс, вес, рост, пол, дата рождения.и мне надо Распечатать(т.е вывести в стринггриде) в алфавитном порядке список учеников, чей вес ниже определенного веса. у меня есть отдельное окно где надо ввести определенный вес. подскажите пожалуста как сделать сортировку(сортировку в стринггриде) и связать ее с поиском еще, ну т.е если ниже определенного веса. P.S есть файл;
Отвечает: Vadim
Поправка и дополнение к ответу на 10 вопрос.
В приведенном до этого SQL-запросе была допущена ошибка в команде упорядочивания.
Для упорядочивания используется команда Order by, т.е. результирующий запрос должен был иметь вид:

Select FAM, NAME, OTCH, CLASS, VES, ROST, SEX, BIRTHDAY
From CHILDREN
Where VES<40 Order by FAM


И, как правильно заметил TechnoSkinner, можно использовать более сложные условия после оператора Where, например: 

Where (условие1)AND((условие2)OR(условие3))

А также перечисление через запятую нескольких полей для упорядочивания, например: 

Order by FAM, NAME, OTCH

Еще, в зависимости от использования компонента Query, либо ему полностью передаётся вся команда SQL-запроса, либо 
компонент Query постоянно активен, и тогда ему передаются только переменные параметры, задаваемые функцией 
ParamByName('Имя_параметра'), перед запуском процедуры ExecSQL;
например, возможен следующий вариант:
-в свойстве SQL компонента Query1 статически храняться следующие строки запроса: 

Select FAM, NAME, OTCH, CLASS, VES, ROST, SEX, BIRTHDAY
From CHILDREN
Where (VES>:A)AND(VES<=:B) 
Order by SEX, VES, ROST


где A, B - параметры (формат :Имя_параметра), описанные в свойстве Params компонента Query1, как DataType: ftFloat и ParamType: ptInput.
Тогда строки активации запроса могут выглядеть: 
//.
Query1.Active:=True;
//.
Query1.ParamByName('A'):=35,5;
Query1.ParamByName('B'):=40;
Query1.ExecSQL;


Более подробные описания использования SQL-запросов можно найти в литературе, например, у Архангельского: 
Москва, ЗАО "Издательство БИНОМ" 2002 А.Я.Архангельский "Программирование в Delphi6", Часть 3 Базы данных и сети 
гл.11.Создание приложений для работы с базами данных в сети.
...или более ранних версиях по Delphi3-Delphi5, например "Программирование в Delphi3. Руководство разработчика баз данных"
Вопрос № задаёт: SHKoder Ответить
отчасти вопрос quote Skeleton22, но с другого боку
Есть таблица, содержит поля город, область, улица, дом, подъезд при фильтрации получается двухмерный масив, содержищий
записи, в которых в основном, повторяется город, остальные значения могут быть разными. подскажите, как двух мерный масив
приобразовать в строку.
пример первого масива.
Москва, ул. Победы, д.1,  п.1, эт.4
Москва, ул. Победы, д.1, п.1, эт.6
Москва, ул. Победы, д.1, п.2  
Москва, ул. Победы, д.9, п.3  
Москва, ул. Мира, д.2, п.1  
Москва, ул. Мира, д.4, п.7  
Москва, ул. Мира, д.4, п.1  

но необходимо получить

Москва, ул. Победы, д.1, п.1, эт.4
        эт.6
      п.2  
    д.9, п.3  
ул. Мира,   д.2, п.1  
    д.4, п.1  
        п.1


зарание благодарен

Отвечает: Vadim
 Функция GetSingleString будет работать корректно, при условии, что поля 'Область', 'Город', 'Улица', 'Дом', 'Подъезд', 'Этаж' и т.д следуют попорядку друг за другом. В случае, если после фильтрации таблица будет пустой, GetSingleString будет возвращать пустую строку. Кстати, не забудь имена формы, модуля данных и таблицы подставить свои.
//.
var
MainForm: TMainForm;
StrArray: TStringList;
//объявляем глобальный массив строк

implementation

{$R *.DFM}


uses DataModule; //если таблица находится в модуле данных, 
//что чаще всего используется для видимости из других форм

const Smesh=1; //номер поля в таблице, с которого необходимо начинать расчёт
//я предположил, что поле с индексом 0 занято каким-нибудь ID-номером строки
//на самом деле, может принимать значения 0,1,2,3,...., взависимости от структуры таблицы

var Rez: String; //переменная результата для видимости только внутри формы MainForm

procedure TMainForm.FillRezValue(InxStart, InxStop: integer); //процедура циклического 
//дополнения результата из таблицы с начального индекса до завершающего индекса
var
i: integer;
begin
for i:=InxStart to InxStop
do begin
StrArray.Strings[i]:=DataM.Table1.Fields[i+Smesh].AsString;
Rez:=Rez+StrArray.Strings[i];
if i<InxStop
then Rez:=Rez+', ';
end;
Rez:=Rez+#13#10; //перевод в начало следующей строки
end;


{--------------------------------------------------------------------------------------------------------------------------------------------------}
function TMainForm.GetSingleString: String; //функция для преобразования данных
//из таблицы в строку с устранением повторяющейся информации 
var
StartIndex, StopIndex: integer;
begin
StrArray.Clear;
//очистка массива перед новым расчётом
Rez:=''; //очистка переменной результата
DataM.Table1.First; //переход на первую строку в таблице
//
//Задание начального и конечного индекса строк массива
StartIndex:=0;
StopIndex:=DataM.Table1.Fields.Count-1-Smesh;
 
//где значение (DataM.Table1.Fields.Count-1) индекс последнего участвующего в расчётах поля, 
//можно задать вручную, если оно не совпадает с индексом последнего поля в таблице
//
FillRezValue(StartIndex, StopIndex); //начальное заполнение значений массива и переменной результата
//
//для корректной проверки конца набора данных 
//первый переход на следующую запись делаем вне цикла
DataM.Table1.Next; 
While not DataM.Table1.Eof do
//организуем цикл пока не конец таблицы
begin
for StartIndex:=0 to StopIndex
//организуем внутри подцикл 
do begin
if DataM.Table1.Fields[StartIndex+Smesh].AsString<>StrArray.Strings[StartIndex]
then begin
FillRezValue(StartIndex, StopIndex);
//дополнение результата с момента расхождения
//и перезапись с этого индекса значений в массиве строк 
Break; //выход из подцикла
end;
end;
DataM.Table1.Next;
//переход на следующую запись
end;
Result:=Rez;
//возвращаем результат функции
end;
{--------------------------------------------------------------------------------------------------------------------------------------------------}

procedure TMainForm.FormCreate(Sender: TObject);
begin
StrArray:=TStringList.Create;
//создать массив строк
//.
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
StrArray.Free;
//уничтожить массив строк (освободить память)
//.
end;


Книги:  

Фленов М. Е. "Программирование в Delphi глазами хакера" формат *.pdf размер = 4 240 kb

В книге вы найдете множество нестандартных приемов программирования на языке Delphi, его недокументированные функции и возможности. Вы узнаете, как создавать маленькие шуточные программы. Большая часть книги посвящена программированию сетей, приведено множество полезных примеров. Для понимания изложенного не нужно глубоких знаний, даже начальных сведений о языке Delphi хватит для работы над каждой темой. Если вы ни разу не программировали, то на прилагаемом к книге компакт-диске в каталоге vr-online вы найдете полную копию сайта автора и электронную версию его книги "Библия Delphi". Это поможет вам научится программировать без каких-либо начальных знаний. Прочитав книгу и дополнительную информацию, предоставленную на компакт-диске, вы можете пройти путь от начинающего программиста до продвинутого пользователя и познать хитрости хакеров и профессиональных программистов.


Эту ссылку http://vecna.fatal.ru/books.html прислал: Амок, здесь можно скачать следующие книги:


Oracle для профессионалов. Книга 1.
Архитектура и основные особенности.

Oracle для профессионалов. Книга 2.
Расширение возможностей и защита.

формат: pdf (рус)
автор: Том Кайт

Одна из лучших русскоязычных книг, посвященных СУБД Oracle. В одном файле оба тома, качество отличное.
[скачать] 8614 Кб   [скачать исходники] 393 Кб


Delphi 5. Руководство разработчика. Том 1.
Основные методы и технологии программирования.

формат: pdf (рус)
автор: Стив Тейксейра, Ксавье Пачеко

Эта книга предназначена для опытных и профессиональных разработчиков программного обеспечения в среде Delphi и написана двумя признанными экспертами в этой области, принимавшими непосредственное участие в создании данного продукта. Книга из разряда must have, качество отличное.   [скачать] 4780 Кб


Delphi 5. Руководство разработчика. Том 2.
Разработка компонентов и работа с базами данных.

формат: pdf (рус)
автор: Стив Тейксейра, Ксавье Пачеко

Эта книга предназначена для опытных и профессиональных разработчиков программного обеспечения в среде Delphi и написана двумя признанными экспертами в этой области, принимавшими непосредственное участие в создании данного продукта. Книга из разряда must have, качество отличное.   [скачать] 5598 Кб


Алгоритмы: построение и анализ.

формат: pdf (рус)
автор: Т. Кормен, Ч. Лейзерсон, Р. Ривест

Книга представляет собой перевод учебника по курсу построение и анализ эффективных алгоритмов, написанного в Массачусетском техническом университете; в ней разрабатываются важнейшие классы быстрых алгоритмов и прием их построения. Изложение подробное и математически строгое. Книгу можно использовать в качестве учебника и справочника; она будет полезна как студентам, так и профессионалам в области computer science и программирования.   [скачать] 3811 Кб


Windows для профессионалов. Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows.

формат: chm (рус)
автор: Дж. Рихтер

Это издание - практически новая книга, посвященная программированию серьезных приложений на Microsoft Visual C++ в операционных системах Windows 2000 (32- и 64-разрядных версиях) и Windows 98 с использованием функций Windows API. Состоит из 27 глав, двух приложений и предметного указателя. Гораздо глубже, чем в предыдущих изданиях рассматриваются такие темы, как взаимодействие с операционной системой библиотеки C/C++, программирование DLL и оптимизация кода, описываются новые механизмы и функции, появившиеся в Windows 2000, и приводится информация, специфическая для 64-разрядной Windows 2000. В этом издании автор, перейдя с языка C на C++, переработал все программы-примеры и представил ряд новых приложений, например ProcessInfo и LISWatch. Также появились совершенно новые материалы: выравнивание данных, привязка потоков к процессорам, кэш-линии процессоров, архитектура NUMA, перехват API-вызовов и др. Книга предназначена профессиональным программистам, владеющим языком C/C++ и имеющим опыт разработки Windows-приложений.   [скачать] 3711 Кб   [скачать исходники] 224 Кб


Сущность технологии COM.

формат: chm (рус)
автор: Дональд Бокс

В этой книге СОМ исследуется с точки зрения разработчика C++. Написанная ведущим специалистом по модели компонентных объектов СОМ, она раскрывает сущность СОМ, помогая разработчикам правильно понять не только методы модели программирования СОМ, но и ее основу. Понимание мотивов создания СОМ и ее аспектов, касающихся распределенных систем, чрезвычайно важно для тех разработчиков, которые желают пойти дальше простейших приложений СОМ и стать по-настоящему эффективными СОМ-программистами. Показывая, почему СОМ для распределенных систем (Distributed СОМ) работает именно так, а не иначе. Дон Бокс дает вам возможность применять эту модель творчески и эффективно для ежедневных задач программирования. [скачать] 1650 Кб

 


Немного юмора:  :))

Разговор программиста с женой. Программер:
- Ты слыхала, что через 10-15 лет станет возможным иметь секс с компьютером?
- А тебе-то что? Для тебя ничего не изменится...


286-й, зараженный вирусом, спрашивает программиста-философа:
- Программист, я буду жить???
- А смысл?


Милая, ну что ты от меня хочешь? Я уже третий час без интернета!


Серьезная организация возьмет на высокооплачиваемую должность опытного хакера. Резюме просим размещать на главной странице сайта www.microsoft.com.


Сообщение перед выключением компьютера:
"Вашу жену зовут Наташа, детей - Юля и Павлик. Вы все еще хотите выйти из Windows?!"


Пользователь технической поддержке:
- Да что же это такое?!!! Всякий раз, когда я вам звоню, мой интернет отключается!!!


В одной старой-старой стране, в старом-старом городе, в старом-старом замке, в старой-старой комнате, сидит, окутанный старой-старой паутиной, старый-старый скелет. Перед ним монитор, а на мониторе надпись:
Windows is now loading. Please wait!


Дружественная рассылка:

Рассылки Subscribe.Ru
Программирование на Delphi.
Всё о Delphi


Если вы встретили в интернете интересный сайт или статью, да и вообще, что угодно связанное с Delphi, поделитесь ссылкой.
Если можете написать статью связанную с Delphi - присылайте с радостью выложу.
Давайте поможем друг другу!  Архив рассылки.

Предложения, критику и пожелания пишите на e-mail.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiinternet
Отписаться

В избранное