Delphi

Описание tmemorystream delphi: Урок 77 — Использование потоков данных (часть 1/3)

Поиск минимального (максимального) элемента массива , статистика элементов массива

Содержание материала

  • Поиск минимального (максимального) элемента массива , статистика элементов массива
  • Страница 2
  • Все страницы

Страница 2 из 2

 

Примечание от Vit: боюсь что код приведенный выше представляет интерес для студентов и тех кто изучает алгоритмы програмирования, для тех же кто занимается практической деятельностью изобретать велосипед нет смысла, всё уже сделано до нас, осталосьт заглянуть в модуль Math от Delphi и найти в нём функции нахождения требуемых величин:

 

Функция модуля Math

Описание

MaxIntValue

Returns the largest signed value in an integer array

MaxValue

Returns the largest signed value in an array

Mean

Returns the average of all values in an array

MeanAndStdDev

Calculates the mean and standard deviation of array elements

MinIntValue

Returns the smallest signed value in an integer array

MinValue

Returns smallest signed value in an array

MomentSkewKurtosis

Calculates the mean, variance, skew, and kurtosis

Norm

Returns the Euclidean ‘L-2’ norm.

PopnStdDev

Calculates the population standard deviation

PopnVariance

Calculates the population variance

StdDev

Returns the sample standard deviation for elements in an array.

Sum

Returns the sum of the elements in an array.

SumInt

Returns the sum of the elements in an integer array.

SumOfSquares

Returns the sum of the squared values from a data array.

SumsAndSquares

Returns the sum of the values and the sum of the squared values in an array.

TotalVariance

Returns the statistical variance from an array of values.

Variance

Calculates statistical sample variance from an array of data.

 

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

 

  • << Назад
  • Вперёд
Подробности
Родительская категория: Язык программирования Дельфи
Категория: Работа с массивами
  • Назад
  • Вперёд
Добавить комментарий

Delphi-программирование: блог Delphi-программиста

Andrey Опубликовано: 12 Сентябрь 2016

Приветствую всех читателей блога. Совсем недавно делал мини-программу по получению информации из фтп-сервера, то есть. Другими словами простенький фтп-клиент.

Я не буду здесь рассказывать, как сделать полноценный фтп-клиент, я расскажу, как использовать компонент TListView для отображения информации фтп-сервера. Причем информация будет отображаться с иконками, ассоциируемые в Вашей системе Windows.

Скажу сразу, тот пример, который будем рассматривать мы в данной статье, основан на компоненте TidFTP из вкладки Indy Clients, но смысл остается тем же, если Вы будете использовать компонент, например библиотеки Synapse.

На форме у меня компонент TListView, в свойстве ViewStyle у меня выставлен vsReport, либо же можно vsIcon. У меня рабочий проект выглядит следующим образом (свойство ViewStyle=vsReport):

ФТП-клиент Delphi

Читать полностью »

Метки: ftp, idFTP, Indy, Indy Clients, ListView, TListView, иконки, ФТП

Другое, Мои работы Комментарии (0) »

Andrey Опубликовано: 26 Январь 2016

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

Хочу рассказать о том, как мне пришлось организовать прием и отправку писем на своем сервере, на предприятии. Я уже рассказывал, что у нас на предприятии установлен свой собственный Microsoft Exchange. Весь прием и отправку я организовал через него, но, я поставил промежуточный собственный почтовый сервер, который выполнял всю грязную работу: обработка ошибок при отправке почты, при приеме почты, автоматическая отправка писем в заданное время, проверка почты в заданной время и так далее.

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

Если честно, почему я пошел на такую схему? Не знаю, мне показалось это более удобным, чем постоянно администраторов просить посмотреть, почему сервер мои подключения отклоняет частые, либо почему сервер почтовый недоступен. Использую промежуточный сервер, я письмо отправил, если сервер Microsoft Exchange не доступен, ничего страшного, письмо будет лежать в папке для отправки, как только сервер оклемается, сразу же произойдет его доставка. То же самое касается и приема писем. Я ни о чем не беспокоюсь. Мне достаточно лишь организовать прием и отправку писем в автоматическом режиме.

Читать полностью »

Метки: Courier Mail Server, idMessage, Mail Server, SMTP

Сеть и интернет Комментарии (0) »

Andrey Опубликовано: 12 Январь 2016

Доброго времени суток дорогие читатели блога. Хочу поздравить Вас с прошедшими праздниками, пожелать в Новом Году всего самого наилучшего, выполнению всех желаний, чтобы у Вас было все, как Вы задумали. Теперь давайте вернемся непосредственно к самой статье.

Давайте продолжим нашу тему по работе с checkboxes в TDBGrid с использованием вычисляемого поля (предлагаю вспомнить первую часть статьи). В данной статье мы рассмотрим, как можно вообще работать с отмеченными записями подобным образом. То есть, когда у нас значение поля checkboxes хранилось в поле таблицы (True или False, 1 или 0), можно было циклом или запросом выбрать нужные нам записи, здесь ситуация почти похожая.

В данной статье мы рассмотрим следующие нюансы:

  • Поиск нужного значения (отмечаем запись checkboxes)
  • Удаление отмеченных записей
  • Выборка отмеченных записей
  • Отметка всех записей отображенных в TDBGrid
  • Снятие отметки всех записей отображенных в TDBGrid

На самом деле, подобным образом с отмеченными записями можно производить любые операции. Это связано с тем, что идентификатор этих записей у нас хранятся в универсальном списке TList. А если у нас есть идентификатор записи, то можно его и удалить с таблицы и найти и так далее.

Давайте начнем с того, что нам необходимо поместить идентификаторы отмеченных записей в сам список TList (у меня переменная списка – ListSelect). Тут необходимо определиться, по какому событию мы будем добавлять в наш список идентификаторы записей. Обычно это делается, когда пользователь нажимает на сам checkboxes, но у меня еще сделано таким образом, что выделять (отмечать) запись можно и клавишей пробел (Space) с переходом на последующую строку. Поэтому, отмечать записи можно по любому событию, как будет удобно.

Читать полностью »

Метки: checkboxes, DBGrid, dbgrideh, ehlib

Базы данных Комментарии (5) »

Andrey Опубликовано: 28 Декабрь 2015

Приветствую читателей блога. Сегодняшняя статья будет посвящена работе с DBF-файлами, без использования ADO, BDE и компонентов доступа к данным. Я уже рассказывал про работу с DBF-файлами, это описано в этой статье.

Многим не нравится работа с ADO, BDE, так как для работы программы, которая была написана с использованием данной технологии, необходимо наличие установленных драйверов поставщика данных, BDE, dll-библиотеки и так далее.

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

Поначалу у меня были проблемы с использованием данного компонента, в частности с кодировками таблицами, но в итоге все разрешилось. Теперь он в моей коллекции, тем более является совершенно бесплатным. Скачать сам компонент можно по этой ссылке, там же есть и пример работы, а также инструкция с описанием методов, свойств компонента. Я Вам расскажу быстро самое основное, то есть, как открыть таблицу, как добавить данные или как создать новую DBF-таблицу.

Читать полностью »

Метки: Ado, BDE, DBF, TDBF

Базы данных Комментарии (3) »

Andrey Опубликовано: 15 Декабрь 2015

Доброго времени суток всем. В этой статье я хотел бы поговорить о том, как можно сделать checkboxes в ячейках для любой базы данных в нужном для Вас гриде (Grid). Я уже писал подобную статью  и рассказывал, как в ячейках грида отображать checkboxes, но здесь речь пойдет совсем о другом способе, на мой взгляд, более правильным и лучшим.

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

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

Читать полностью »

Метки: checkboxes, DBGrid, dbgrideh, ehlib

Базы данных Комментарии (6) »

Страница 1 из 4112345. ..102030…»Последняя »

DDH: Глава 15

Справочник разработчика Delphi

Глава 15. Другие расширения Delphi

Авторские права Марко Канту, 1997 г.

Краткий обзор ToolsAPI

В этой и нескольких последних главах мы обсудили ряд классов ToolsAPI для расширения среды Delphi. Однако в исходном коде VCL появляются и другие классы, относящиеся к среде Delphi (например, информация о типах во время выполнения, которая будет подробно рассмотрена в следующей главе). Далее следует краткое описание ToolsAPI, в котором перечислены все классы в одном разделе. Это далеко не полный справочник: это всего лишь список классов, определенных каждым модулем, с краткими описаниями. Вы найдете дополнительную информацию (главным образом, расширенные комментарии) в самих файлах исходного кода, и нет причин дублировать эту информацию здесь.

Ниже вы можете заметить, что мы пропустили файл в каталоге ToolsAPI. На самом деле, мы намеренно не включили модуль DsgnIntf, поскольку он определяет не интерфейсы к среде Delphi, а внутренних класса редактора , таких как редакторы компонентов и свойств. Мы подробно обсуждали эти классы в главах 12 и 13. После этого раздела будет приведена дополнительная информация о пользовательских конструкторах форм.

Блок VirtIntf

Классы в модуле VirtIntf являются базовыми классами иерархии классов интерфейса ToolsAPI. Они редко используются напрямую.
ТИнтерфейс Общий класс интерфейса, реализующий механизм подсчета ссылок. Большинство других классов интерфейса происходят от этого.
TIStream Абстрактный базовый класс интерфейсов для внутренних классов потока Delphi, описанный в следующем разделе.

Блок IStreams

Классы в модуле IStreams представляют собой иерархию классов интерфейсных потоков. Не путайте их со стандартными потоковыми классами (обсуждаемыми в главе 3). Каждый объект потока интерфейса инкапсулирует соответствующий объект потока, используемый для выполнения фактических операций чтения и записи. Вы можете увидеть пример использования классов потока интерфейса в последней главе, в примере мастера форм.
TIVCLStreamAdapter и TIStreamAdapter Базовые классы других потоков интерфейса, используемые для сопоставления TIStream с простым объектом TStream.
TIMemoryStream Реализует оболочку для класса TMemoryStream и наследуется от класса TIStreamAdapter. Мы использовали этот класс в примере с мастером форм из предыдущей главы.
TIFileStream Реализует оболочку для класса TFileStream и наследуется от класса TIVCLStreamAdapter.
ТВ виртуальный поток Реализует оболочку для универсального объекта TIStream и наследуется от класса TStream.

Модуль FileIntf

Единственный класс в модуле FileIntf является базовым классом для виртуальной файловой системы.
ТИВиртуальная файловая система Реализует виртуальную файловую систему для среды Delphi. Надстройка может реализовывать и использовать другую файловую систему.
  • Виртуальная файловая система — это механизм отображения файловых операций на структуры данных, которые не основаны на файлах. Вы должны были заметить, что в Delphi вы можете открыть список строк в редакторе. Это достигается с помощью виртуальной файловой системы: редактор считает список строк файлом и загружает его. Операции чтения и записи в этом «фальшивом» файле отображаются виртуальной файловой системой в операции над объектом списка строк.

Блок ToolIntf

Классы в модуле ToolIntf включают основной класс ToolServices, интерфейсы меню и интерфейсы уведомлений.
ТИменуитеминтф Класс интерфейса для каждого пункта меню и выпадающего меню среды Delphi. Мы использовали этот класс в мастере надстроек в предыдущей главе.
TIMainMenuIntf Интерфейс для системы меню Delphi. Это легкий класс, который вы будете использовать для доступа к меню.
ТИаддиннотифиер Используется мастерами и системами контроля версий, чтобы Delphi могла уведомлять их о некоторых действиях с файлами или проектами. Мы использовали этот класс в нашей демонстрации VCS.
ТИтулсервисес На практике интерфейс самого Delphi, включая информацию о проекте, действия, которые вы можете выполнять, и многие другие функции. Мы использовали глобальный объект ToolServices этого класса во многих примерах в этой и двух предыдущих главах. Часто это точка входа для других интерфейсов.

Модуль ExpIntf

Единственный класс в модуле ExptIntf является базовым классом каждого пользовательского мастера.
ТИЭксперт Класс, от которого следует наследоваться для создания пользовательских мастеров. Мы видели несколько примеров этого класса в предыдущей главе.

Модуль VcsIntf

Единственный класс в модуле VcsIntf является базовым классом каждой пользовательской системы контроля версий.
TIVCClient Класс, из которого вы должны создать собственную систему управления версиями. Мы уже видели примеры этого класса в этой главе.

Модуль EditIntf

Классы в модуле EditIntf включают в себя интерфейсы модулей (включая файлы ресурсов и другие) и все редакторы среды (включая редактор исходного кода, дизайнер форм и компоненты в дизайнере). В Delphi 3 к этим модулям относятся также классы «создатели».
ТИМодулеИнтерфейс Интерфейс модуля: форма, модуль, файл проекта, файл ресурсов и т.д. Мы использовали это в последней версии примера Project VCS.
TIModuleNotifier Уведомитель для модуля с большим количеством уведомлений, чем общий уведомитель проекта. Мы использовали это в последней версии примера Project VCS.
TIResourceFile Интерфейс к файлу ресурсов.
ТИресаурцеентри Интерфейс для записи в файле ресурсов.
TIComponentInterface Интерфейс для компонента во время разработки.
TIFormInterface Интерфейс формы во время разработки.
TIEditorInterface Интерфейс модуля, загруженного в редактор.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *