• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


Иллюстрированный самоучитель по Turbo Pascal

Программа Notebook

if Edit then with Data do
begin {Готовим начальный текст:}
p: = PS.At(Location); {Читаем данные из записи}
s: = p;
Name: = copy(s,1,LName);
Phone: = copy(s,succ(LName),LPhone);
Addr: = copy(s,succ(LName+LPhone),LAddr);
InWin.setData(Data) {Вставляем текст в поля ввода}
end;
Control: = DeskTop.ExecView(InWin); {Выполняем диалог}
if Control=cmOk then with Data do
begin
if Edit then
DeleteItem; {Удаляем старую запись}
Name: = BName.Data;
Phone: = BPhone.Data;
Addr: = BAddr.Data;
s[0]: = chr(L);
FillChar(s [1], L, ' ');
move (Name [1],s [1],Length (Name));
move(Phone[1],s[succ(LName)],Length(Phone));
move(Addr[1],s[succ(LName+LPhone)],Length(Addr)
OldCount: = PS. Count; {Прежнее количество записей}
PS. Insert (NewStr (s)); {Добавляем в коллекцию}
{Проверяем добавление }
if OldCount < > PS. Count then
Write (DataFile, Data) {Да – добавляем в файл}
end
until Edit or (Control=cmCancel);
Draw
end; {AddItem}
{-----------------}
Procedure SearchItem;
{Ищет нужный элемент}
Function UpString(s: String): String;
{Преобразует строку в верхний регистр}
var
k: Integer;
begin
for k: = 1 to Length(s) do
if s[k] in ['a'..'z'] then
s[k]: = chr(ord('A')+ord(s [k]) – ord('a'))
else if s[k] in ['a'..'n'] then
s[k]: = chr(ord('A')+ord(s[k])-ord('a'))
else if s[k] in ['p'..'я'] then
s[k]: = chr(ord('P')+ord(s [k]) – ord('p'))
UpString: = s
end; {UpString}
var
InWin: PDialog;
R: TRect;
s: String;
p: PInputLine;
k: Word;
begin {SearchItem}
R.Assign(15.8.65.16);
InWin: = New (PDialog, Init (R, 'Поиск записи:'))
with InWin do
begin
R.Assign(2.2.47.3);
p: = New (PInputLine,Init(R,50));
Insert (p); R.Assign(1.1.40.2);
Insert (New (PLabel, Init(R,'Введите образец для поиска:',р)));
R.Assign(10.5.20.7);
Insert (New (PButton,Init(R,'Ввести',cmOk,bfDefault)));
R.Assign(25.5.35.7);
Insert (New (PButton,Init (R,' Выход',cmCancel,bf Normal)));
SelectNext (False)
end;
if DeskTop.ExecView(InWin) = cmCancel then
exit; s: = p.Data;
Location: = 0;
while (UpString(s) >= UpString (PString(PS. At (Location))))
and (Location < pred(PS. Count)) do
inc (Location);
if (Location < Delta.Y) or (Location > Delta.Y+pred(Size.Y)) then
ScrollTo (Delta.X, Location)
else
Draw
end; {SearchItem}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.