Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
4th
Сен
Как узнать к какому процессу принадлежит известный класс окна
const
// Размер буфера, резервируемого для имени класса при
// использовании функций GetClassName и GetReadWindowClass
ClassNameLen = 512;
function EnumWindowProc(Wind: HWND; LI: TListItem): BOOL; stdcall;
var
Text: string;
TextLen: Integer;
ClassName: array[0..ClassNameLen - 1] of Char;
begin
Result := True;
TextLen := GetWindowTextLength(Wind);
SetLength(Text, TextLen);
if TextLen > 0 then
GetWindowText(Wind, PChar(Text), TextLen + 1);
if TextLen > 100 then
Text := Copy(Text, 1, 100) + ' ...';
GetClassName(Wind, ClassName, ClassNameLen);
ClassName[ClassNameLen - 1] := #0;
LI := AddAppForm.AppWindList.Items.add;
LI.Caption := IntToStr(Wind);
LI.SubItems.Add(ClassName);
if Text = '' then
LI.SubItems.Add('без имени')
else
LI.SubItems.Add(Text);
end;
function EnumTopWindowProc(Wind: HWND; PID: Cardinal): BOOL; stdcall;
var
Text: string;
TextLen: Integer;
ClassName: array[0..ClassNameLen - 1] of Char;
WindPID: Cardinal;
LI: TListItem;
begin
Result := True;
GetWindowThreadProcessId(Wind, @WindPID);
if WindPID = PID then
begin
TextLen := GetWindowTextLength(Wind);
SetLength(Text, TextLen);
if TextLen > 0 then
GetWindowText(Wind, PChar(Text), TextLen + 1);
if TextLen > 100 then
Text := Copy(Text, 1, 100) + ' ...';
GetClassName(Wind, ClassName, ClassNameLen);
ClassName[ClassNameLen - 1] := #0;
LI := AddAppForm.AppWindList.Items.add;
LI.Caption := IntToStr(Wind);
LI.SubItems.Add(ClassName);
if Text = '' then
LI.SubItems.Add('без имени')
else
LI.SubItems.Add(Text);
//EnumChildWindows(Wind,@EnumWindowProc,LParam(LI));
end;
end;
function GetProcessPID(ExeFileName: string): Cardinal;
var
ContinueLoop: Bool;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.DwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while Integer(ContinueLoop) <> 0 do
begin
if ((AnsiUpperCase(ExtractFileName(FProcessEntry32.SzExeFile)) =
AnsiUpperCase(ExeFileName)) or (AnsiUpperCase(FProcessEntry32.SzExeFile) =
AnsiUpperCase(ExeFileName))) then
Result := FProcessEntry32.Th32ProcessID;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
function ProcessExists(ExeFileName: string): Boolean;
var
ContinueLoop: Bool;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := False;
FSnapshotHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.DwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while Integer(ContinueLoop) <> 0 do
begin
if ((AnsiUpperCase(ExtractFileName(FProcessEntry32.SzExeFile)) =
AnsiUpperCase(ExeFileName)) or (AnsiUpperCase(FProcessEntry32.SzExeFile) =
AnsiUpperCase(ExeFileName))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
procedure GetWindList(PID: Cardinal);
begin
if PID = 0 then
Exit;
EnumWindows(@EnumTopWindowProc, PID);
end;
2nd
Сен
Чтение данных с COM порта 232
#include <vcl.h>
#pragma hdrstop
#include <windows.h>
//---------------------------------------------------------------------------
/*
ZeroMemory (&dcb, sizeof (DCB));// не знает что ето такое
*/
//объявим структуру для асинхронной работы порта
OVERLAPPED over;
//для выделения сигнала
DWORD dwSignal;
//объявим структуру для конфигурации СОМ порта
DCB dcb;
//дескриптор порта
HANDLE hPortDat = NULL;
//переменная для чтения
char Data;
//==================================
//---------------------------------------------------------------------------
class MuClDataOutPort
{
private:
//пишим функцию инициализации порта
bool InnitPort ()
{
//открываем порт СОМ 1
hPortDat = CreateFile ("COM1", GENERIC_READ|GENERIC_WRITE,
0,NULL, OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, NULL);
if (hPortDat == INVALID_HANDLE_VALUE)//если порт не удалось открыть
{
CloseHandle (hPortDat);
return false;//выходим из функции с ошибкой
}
//настраиваем параметры порта
dcb.BaudRate = CBR_19200;//скорость передачи
dcb.ByteSize = 8;//размер передачи
dcb.StopBits = ONESTOPBIT;//один стоповый бит
dcb.Parity = NULL;
//проверяем на правильность настройки
if ( !SetCommState ( hPortDat, &dcb)) //тоже не работает....
{
CloseHandle (hPortDat);
return false;//выходим из функции с ошибкой
}
//если все выполнилось то возвращаем положительный результат
return true;
}
//----------------------------------------------------
//функция чтения одного байта данных
BYTE ReadByteCOM ()
{
if (InnitPort ())
{
BYTE read = 0;
DWORD dwByteRead = 0;
do
{//читаем байт из порта
if (!ReadFile (hPortDat, &read, sizeof (BYTE), &dwByteRead, NULL))
{return 0xFF;}
} while (!dwByteRead);
return read;//возвращаем данные
}
else
{
return 0xFF;
}
}
//------------------------------------------------------
//функция чтения одного байта данных
bool WriteByteCOM (char bufer)
{
if (InnitPort ())
{
DWORD dwByteWrite = 0;
if (!WriteFile(hPortDat, &bufer, sizeof(char), &dwByteWrite, NULL))
{return false;}
return true;//возвращаем сведение о выполнении
}
else
{
return false;
}
}
//=============================================
//функция чтения массива данных
//=============================================
//=============================================
//=============================================
public:
//общая функция для работы с портом
void GeneralCOMRead ()
{
//проверяем сигнал в линии
if (dwSignal & EV_DSR)//данные готовы для чтения
{
//читаем байт из порта
Data = ReadByteCOM ();
//сохраняем байт куда-либо
}
}
//---------------------------------------------------------
void GeneralCOMWrite (char InData)
{
//проверяем сигнал в линии
if (dwSignal & EV_CTS)//данные готовы для записи
{
//пердаем байт из вне и записываем его в порт
WriteByteCOM (InData);
}
}
//---------------------------------------------------------
void CloseCOM ()
{
if (over.hEvent)
{
CloseHandle (over.hEvent);//закрываем объект событие
}
if (hPortDat)
{
CloseHandle (hPortDat);
hPortDat = NULL;
}
}
};
#pragma package(smart_init)
1st
Сен
РЕДАКТОР — ПРЕОБРАЗОВАТЕЛЬ WML СТРАНИЦ
Новый раздел
Во время создания wap сайта, может возникнуть проблема с отображение русской кодмровки, для корректного перевода используйте специальные программыосуществляющие перевод кода в формат wml. одну из таких программ вы можете скачать здесь . Распакуйте оба файла в одну папку и запустите приложение. Тут для вас откроет окошко с двумя полями. В первое мы вводим наш код и тут же в соседнем поле появляется новый вариант этого же кода, тот что нам и нужен.
После перевода с помощью данной программы все русские буквы в нашем wap сайте будут отображаться правильно. Вы можете просмотреть страницу и убедиться в этом. Вот что должно получится при просмотре в браузере Opera:
( посмотреть gif-файл ).
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
1st
УРОК 25. СТАТИЧЕСКИЕ ФУНКЦИИ И ЭЛЕМЕНТЫ ДАННЫХ
До настоящего момента каждый создаваемый вами объект имел свой собственный набор элементов данных. В зависимости от назначения вашего приложения могут быть ситуации, когда объекты одного и того же класса должны совместно использовать один или несколько элементов данных. Например, предположим, что вы пишете программу платежей, которая отслеживает рабочее время для 1000 служащих. Для определения налоговой ставки программа должна знать условия, в которых работает каждый служащий. Пусть для этого используется переменная классаstate_of_work. Однако, если все служащие работают в одинаковых условиях, ваша программа могла бы совместно использовать этот элемент данных для всех объектов типа employee. Таким образом, ваша программа уменьшает необходимое количество памяти, выбрасывая 999 копий одинаковой информации. Для совместного использования элемента класса вы должны объявить этот элемент как static (статический). Этот урок рассматривает шаги, которые вы должны выполнить для совместного использования элемента класса несколькими объектами. К концу этого урока вы освоите следующие основные концепции:
- C++ позволяет иметь объекты одного и того же типа, которые совместно используют один или несколько элементов класса.
- Если ваша программа присваивает значение совместно используемому элементу, то все объекты этого класса сразу же получают доступ к этому новому значению.
- Для создания совместно используемого элемента данных класса вы должны предварять имя элемента класса ключевым словом static.
- После того как программа объявила элемент класса как static, она должна объявить глобальную переменную (вне определения класса), которая соответствует этому совместно используемому элементу класса.
- Ваши программы могут использовать ключевое слово static, чтобы сделать метод класса вызываемым в то время, как программа, возможно, еще не объявила каких-либо объектов данного класса.
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ ЭЛЕМЕНТА ДАННЫХ
Обычно, когда вы создаете объекты определенного класса, каждый объект получает свой собственный набор элементов данных. Однако возможны такие ситуации, при которых объектам одного и того же класса необходимо совместно использовать один или несколько элементов данных (статические э лементы данных). В таких случаях объявляйте элементы данных как общие ил и частные, а затем предваряйте тип ключевым словом static, как показано ниже:
private:
static int shared_value;
После объявления класса вы должны объявить элемент как глобальную переменную вне класса, как показано ниже:
int class_name::shared_value;
Следующая программа SHARE_IT.CPP определяет класс book_series,совместно использующий элемент page_count, который является одинаковым для всех объектов (книг) класса (серии). Если программа изменяет значение этого элемента, изменение сразу же проявляется во всех объектах класса:
#include <iostream.h>
#include <string.h>
class book_series
{
public:
book_series(char *, char *, float);
void show_book(void);
void set_pages(int) ;
private:
static int page_count;
char title[64];
char author[ 64 ];
float price;
};int book_series::page__count;
void book_series::set_pages(int pages)
{
page_count = pages;
}book_series::book_series(char *title, char *author, float price)
{
strcpy(book_series::title, title);
strcpy(book_series::author, author);
book_series::price = price;
}void book_series:: show_book (void)
{
cout << «Заголовок: » << title << endl;
cout << «Автор: » << author << endl;
cout << «Цена: » << price << endl;
cout << «Страницы: » << page_count << endl;
}void main(void)
{
book_series programming( «Учимся программировать на C++», «Jamsa», 22.95);
book_series word( «Учимся работать с Word для Windows», «Wyatt», 19.95);
word.set_pages(256);
programming.show_book ();
word.show_book() ;
cout << endl << «Изменение page_count » << endl;
programming.set_pages(512);
programming.show_book();
word.show_book();
}
Как видите, класс объявляет page_count как static int. Сразу же за определением класса программа объявляет элемент page_count как глобальную переменную. Когда программа изменяет элемент page_count,изменение сразу же проявляется во всех объектах класса book_series.
Совместное использование элементов класса
В зависимости от вашей программы возможны ситуации, когда вам потребуется совместно использовать определенные данные несколькими экземплярами объекта. Для этого объявите такой элемент как static. Далее объявите этот элемент вне класса как глобальную переменную. Любые изменения, которые ваша программа делает с этим элементом, будут немедленно отражены в объектах данного класса.
Использование элементов с атрибутами public static, еслиобъекты не существуют
Как вы только что узнали, при объявлении элемента класса как static этот элемент совместно используется всеми объектами данного класса. Однако возможны ситуации, когда программа еще не создала объект, но ей необходимо использовать элемент. Для использования элемента ваша программа должна объявить его как public и static. Например, следующая программа USЕ_MBR.CPP использует элемент page_count из классаbook_series, даже если объекты этого класса не существуют:
#include <iostream.h>
#include <string.h>
class book_series
{
public:
static int page_count;
private:
char title [64];
char author[64];
float price;
};int book_series::page_count;
void main(void)
{
book_series::page_count = 256;
cout << «Текущее значение page_count равно » << book_series::page_count << endl;
}
В данном случае, поскольку класс определяет элемент класса page_countкак public, программа может обратиться к этому элементу класса, даже если объекты класса book_series не существуют.
ИСПОЛЬЗОВАНИЕ СТАТИЧЕСКИХ ФУНКЦИЙ-ЭЛЕМЕНТОВ
Предыдущая программа иллюстрировала использование статическихэлементов данных. Подобным образом C++ позволяет вам определитьстатические функции-элементы (методы). Если вы создаете статическийметод, ваша программа может вызывать такой метод, даже если объекты не были созданы. Например, если класс содержит метод, который может быть использован для данных вне класса, вы могли бы сделать этот методстатическим. Ниже приведен класс menu, который использует esc-последовательность драйвера ANSI для очистки экрана дисплея. Если в вашей системе установлен драйвер ANSI.SYS, вы можете использовать метод clear_screen для очистки экрана. Поскольку этот метод объявлен как статический, программа может использовать его, даже если объекты типа menu не существуют. Следующая программа CLR_SCR.CPP использует метод clear_screen для очистки экрана дисплея:
#include <iostream.h>
class menu
{
public:
static void clear_screen(void);
// Здесь должны быть другие методы
private:
int number_of_menu_options;
};void menu::clear_screen(void)
{
cout << ‘\033’ << «[2J»;
}void main(void)
{
menu::clear_screen();
}
Так как программа объявляет элемент clear_screen как статический, она может использовать эту функцию для очистки экрана, даже если объекты типа menu не существуют. Функция clear_screen использует esc-последовательность ANSI Esc[2J для очистки экрана.
Использование в ваших программах методов класса
По мере создания методов класса возможны ситуации, когда функция, созданная вами для использования классом, может быть полезна для операций вашей программы, которые не включают объекты класса. Например, в классеmenu была определена функция clear_screen, которую вы, возможно, захотите использовать в программе. Если ваш класс содержит метод, который вы захотите использовать вне объекта класса, поставьте перед его прототипом ключевое слово static и объявите этот метод как public:
public:
static void clear_screen(void);Внутри вашей программы для вызова такой функции используйте оператор глобального разрешения, как показано ниже:
menu::clear_screen();
ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ
Из этого урока вы узнали, что, если предварять элемент данных класса ключевым словом static, все объекты данного класса могут совместно использовать этот элемент. Когда элемент данных является общим, ваши программы могут обращаться к его значению, даже если объекты этого класса не существуют. Подобно этому, если ваши программы предваряют общий метод класса ключевым словом static, они могут использовать эту функцию для операций, которые не включают объекты класса. Из урока 26 вы узнаете, как использовать наследование для построения объекта из одного или нескольких уже существующих объектов. Использование наследования для создания новых объектов может сэкономить огромные усилия, затрачиваемые на программирование. До изучения урока 26 убедитесь, что освоили следующие основные концепции:
- Когда вы объявляете элемент класса как static, то такой элемент может совместно использоваться всеми объектами данного класса.
- После того как ваша программа объявляет элемент класса какstatic, она должна вне определения класса объявить глобальную переменную, соответствующую совместно используемому элементу класса.
- Если вы объявляете элемент как public и static, ваша программа может использовать такой элемент, даже если объекты данного класса не существуют. Для обращения к этому элементу ваша программа должна использовать оператор глобального разрешения, напримерclass_name::member_name.
- Если вы объявляете общую статическую функцию-элемент, ваша программа может вызывать эту функцию, даже если объекты данного класса не существуют. Для вызова данной функции программа должна использовать оператор глобального разрешения, например menu::clear_screen().
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
1st
УРОК 27. МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ
Из урока 26 вы узнали, что можно построить один класс из другого, наследуя его характеристики. Оказывается, C++ позволяет порождать класс из нескольких базовых классов. Когда ваш класс наследует характеристики нескольких классов, вы используете множественное наследование. Как вы узнаете из данного урока, C++ полностью поддерживает множественное наследование. К концу этого урока вы изучите следующие основные концепции:
- Если вы порождаете класс из нескольких базовых классов, то получаете преимущества множественного наследования.
- При множественном наследовании производный класс получает атрибуты двух или более классов.
- При использовании множественного наследования для порождения класса конструктор производного класса должен вызвать конструкторы всех базовых классов.
- При порождении класса из производного класса вы создаете иерархию наследования (иерархию классов).
Множественное наследование является мощным инструментом объектно-ориентированного программирования. Экспериментируйте с программами, представленными в этом уроке, и вы обнаружите, что построение класса из уже существующего значительно экономит усилия на программирование. (читать всё…)
1st
КОД
Код (франц. code, от лат. codex — свод законов), система условных знаков (символов) для передачи, обработки и хранения (запоминания) различной информации. Конечная последовательность кодовых знаков называется словом. Число различных символов, которые используются в словах данного К., называется его основанием; например, К. с основанием 2 называется двоичным. Если все слова имеют одинаковую длину, или количество элементов, — n, то это равномерный n-значный К. (см. Код телеграфный). Если слова имеют переменную длину, то К. называется неравномерным, например Морзе код. К. называется полным, когда к нему без нарушения его различимости нельзя добавить ни одной новой кодовой комбинации. Полный равномерный n-значный К. содержит тn слов, где т — основание кода. К., содержащий кодовые комбинации, служащие для отделения одного сообщения от другого, называется К. с разделительными знаками; К., в котором все без исключения кодовые комбинации символов служат лишь для обозначе ния элементов сообщения, является К. без разделительных знаков. Кодовые комбинации, являющиеся разделительными знаками, могут конструироваться либо из специальных кодовых символов, либо из тех же кодовых символов, которые образуют кодовые комбинации, соответствующие определенным элементам сообщения. Иногда бывает удобно разбить элементы сообщения на несколько групп и для каждой из этих групп построить свой К.; сигнал о переходе от одного К. к другому подается специальными кодовыми комбинациями (адресами). Совокупность К. для каждой из групп элементов сообщения вместе с адресными кодовыми комбинациями называется многоадресным, или многопрограммным К.
Для записи К. чаще всего используют либо цифры и числа (0, 1, 2,… 57, 9276 и т.п.), либо знаки, например + (плюс), — (минус), • (точка), — (тире) и т.д. В технике каждый кодовый знак является условным обозначением некоторого элементарного сигнала, обладающего какими-либо физическими параметрами (сигнальными признаками), которые могут принимать несколько различных значений. Для электрических сигналов такими признаками могут служить амплитуда тока или напряжения, полярность или длительность электрических импульсов (посылок), периодичность их следования и др.
К., применяемые в телемеханике, в системах связи и автоматического управления, в вычислительной технике, представляют собой набор комбинаций из электрических импульсов и пауз между ними, что эквивалентно изображению значений кодируемой величины в виде двоичных чисел — наборов, состоящих из 0 и 1 (см. Код в телемеханике, Код в ЦВМ). Количество импульсов в комбинации или разрядов в эквивалентном двоичном числе определяет значность К.
Выбор К. определяется условиями передачи, обработки или хранения информации и связан главным образом с наиболее эффективным использованием каналов связи, обеспечением необходимой помехоустойчивости передачи и т.п. (см. Кодирование). С целью улучшения помехоустойчивости К. усложняются: к так называемым информационным знакам добавляются дополнительные — контрольные (проверочные). По такому принципу строятся К. обнаружения и исправления ошибок (см. Корректирующие коды).
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
1st
СТАТЬЯ 2. ХОСТИНГ И ДОМЕННОЕ ИМЯ
В этой статье мне бы хотелось осветить проблему хостинга сайта (места на сервере), а также выбора доменного имени (адреса вашего сайта). О том, как выбирать хостинг, о платном и бесплатном хостинге, о критериях выбора хостинга, а также о доменных именах второго и третьего уровня и их выборе вы сможете прочитать в данной статье.
Итак, во-первых, необходимо выяснить, что же такое хостинг и зачем он нужен. Хост — сервер, на котором будет храниться ваш сайт и этот сервер выдает страницы при запросе их пользователем. Свои услуги хостинга предлагают многие компании сегодня. Но хостом может стать любой компьютер, подключенный в сети. Но в этом случае все зависит от того, каким образом ваш компьютер подключен к всемирной паутине и какая при этом скорость передачи. В то же время ваш компьютер должен быть всегда включен и подключен к сети. Такой способ «самохостинга» очень трудный и доставляет много хлопот. И именно для того, чтобы облегчить размещение сайтов существуют хостинг-провайдеры. Каждый хостинг-провайдер имеет свои базы данных, в которых хранятся материалы сайтов, которыми они предоставляют свои услуги. В зависимости от способа хранения сервера бывают хорошие и не очень. Конечно, хостинг — дело не бесплатное, у каждой такой компании свои услуги на хостинг и в то же время свои уникальные предложения. Поэтому у начинающих веб-мастеров возникают проблемы и трудности в вопросе выбора хостин-провайдера. Я советую выбирать те компании, которые работают на рынке уже много времени и клиенты которой довольны работой своего хостинг-провайдера. Не надо попадаться на уловки и предложения о хостинге по низкой цене. Вы воспользуетесь таким предложением, а посетители вашего сайта будут очень недовольны маленькой скоростью передачи (скорость передачи также зависит и от сервера), а также проблемами с доступом. Такие компании в чем-то отказывают своим клиентам, но не говорят об этом. Да и сами клиенты не понимают, что их обманывают. Сервера же, которые работают на рынке и предоставляют свои услуги не первый год имеют какой-то опыт и у них перебоев в работе не будет. Такие компании очень надежны, поэтому их цена и может быть выше цен конкурентов.
Узнать о компаниях, предоставляющих хостинг и стать их клиентом можно просто набрав «Хостинг» в какой-нибудь поисковой системы. Отнеситесь к выбору своего хостинг-провайдера необходимо серьезно и выбрать его только подумав и обдумав все.
Надо сказать еще и о такой вещи, как бесплатный хостинг. Мы все знаем, что сайтов на бесплатном хостинге очень много и их почти никто не посещает. Бесплатный хостинг очень не надежен и опытные пользователи интернет не посещают такие сайты. Также обычно бывает так, что компании, предоставляющие бесплатный хостинг предоставляют и бесплатное доменное имя 3-го уровня (например, my.site.com). Я не советую вам обзаводиться сайтом на бесплатном хостинге. Лучше немного вложить в развитие своего сайта, если вы хотите что-то заработать. Бесплатный хостинг подходит домашним страничкам. Как правило домашние странички просто знакомят посетителей с хозяевами этих страничек, поэтому как бесплатный хостинг, так и доменное имя 3-го уровня подходят домашним страничкам.
Итак, доменное имя, что это такое и как его выбрать? Существуют доменные имена первого уровня, например .ru , .com , .net и т.д. У каждой страны имеется свой домен, например у России это .ru, у Китая это .cn, а у Германии .de . Также существуют международные домены, такие как .com, .biz, .info, .org, .net и т.д. «Простым сайтовладельцам» предлагается регистрация доменного имени второго уровня (sitename.ru). Регистрация такого домена возможна в любой доменной зоне, но лучше выбирать тот домен, под который подойдет тематика сайта, например для сайта организации подойдет домен .org, для «бизнес-сайта» подойдет .biz, а для сайта направленного на российскую аудиторию .ru. Адрес сайта уже говорит о его содержании, поэтому необходимо выбирать то, что вам подойдет. Доменное имя должно быть легким, запоминающимся, звучным, интересным одновременно. Подобрать подходящий адрес для своего сайта совсем не просто и это сложно сделать за одну минуту или даже за один день. Многие доменные имена уже заняты и бывает трудно подобрать незанятое и подходящее одновременно. Но если у вас есть цель найти подходящее имя, вы обязательно найдете его. Некоторые доменные имена куплены для продажи за большие деньги, все дело именно в популярности слова. Например, домен Internet.ru настолько прост и легок, что пользователь может прийти на этот сайт даже просто набрав адрес в окне браузера, не подозревая о существовании сайта с таки адресом. А вот адрес mybb.ru никто не наберет просто так. Я советую вам выбирать имя без чисел в нем, вез неизвестных и придуманных слов, а также не выбирать слишком сложные для запоминания слова, выберите слово, которое часто встречается в быту (конечно, сегодня такой домен застать не занятым трудно, но все же возможно).
Доменные имена регистрируют те же компании, предоставляющие хостинг или же отдельно взятые регистры. Доменные имена 3-го уровня я не советую никому. Один домен второго уровня равен 10 доменам третьего уровня, вместе взятым по интересу к нему, а также по ТИЦ (индексу цитирования, по которому поисковая машина выдает результаты).
Наконец, после выбора доменного имени и хостинговой компании можно приступить к созданию самого сайта…
1st
ХРАНЕНИЕ ИНФОРМАЦИИ
Как вы уже знаете, переменная может хранить значение определенного типа. В программах на C++, которые вы создали при изучении первых двух частей этой книги, переменные хранили только одно значение. По мере увеличения сложности ваших программ в некоторых ситуациях вам потребуется работать с несколькими значениями одновременно. Например, ваша программа может работать со 100 тестовыми очками, 30 стоимостью акций или фамилиями и адресами 5000 служащих вашей компании. В этой части вы узнаете, как использовать разные типы данных C++ для хранения множества значений внутри одной и той же переменной. Как вы узнаете, использовать одну переменную для хранения множества значений очень удобно.
Урок 16. Хранение значений в массивах.
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
1st
УРОК 21 ЗНАКОМСТВО С КЛАССАМИ C++
Класс представляет собой главное инструментальное средство C++ для объектно-ориентированного программирования. Как вы узнаете из данного урока, класс очень похож на структуру, в которой сгруппированы элементы, соответствующие данным о некотором объекте, и оперирующие этими данными функции (называемые методами). Вы узнаете, что объект представляет собой некоторую сущность, например телефон. Класс C++ позволяет вашим программам определять все атрибуты объекта. В случае, когда объектом является телефон, класс может содержать такие элементы данных, как номер и тип телефона (кнопочный или дисковый) и функции, работающие с телефоном, например dial, answer, и hang_up. Группируя данные об объекте и кодируя их в одной переменной, вы упрощаете процесс программирования и увеличиваете возможность повторного использования своего кода. Этот урок знакомит вас с классами C++ . К концу урока вы освоите следующие основные концепции:
- Для определения класса программа должна указать имя класса, элементы данных класса и функции класса (методы).
- Определение класса обеспечивает шаблон, с помощью которого ваши программы могут создать объекты типа этого класса, подобно тому, как программы создают переменные типа int, char и т. д.
- Программа присваивает значения элементам данных класса, используя оператор точку.
- Программа вызывает функцию-элемент класса, используя оператор точку. (читать всё…)
1st
В STRINGGRID ИЗМЕНЯТЬ ЦВЕТ СИМВОЛОВ В ТАБЛИЦЕ НА ВЫБРАННЫЙ ПОЛЬЗОВАТЕЛЕМ
1) устанавливать количество столбцов и строк таблицы StringGrid равным числам, вводимым пользователем;
2) установить для таблицы StringGrid первые столбец и строку фиксированными и заполнить их номерами;
3) остальные ячейки таблицы заполнить значениями функции X?+Y? (x,y в квадрате), где Х — номер колонки ячейки, Y — номер строки);
4) изменять цвет символов в таблице на выбранный пользователем.
Решение
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)