procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
  TextFile : TFileStream;
  buf, s: Char;
  b : byte;
  FileName, tmpLine: string;
begin
 //  FileName := ExtractFilePath( Application.ExeName ) + 'test.txt';
  FileName := 'D:\1.txt';
  TextFile := TFileStream.Create( FileName, fmOpenRead );
  tmpLine:='';
  while TextFile.Position < TextFile.Size do
  begin
      TextFile.Read( buf, 1 );
      b := ord(buf);
      if ( b>=192 ) then s := chr(b+848) else s := chr(b);
      tmpLine := tmpLine + s;
      ShowMessage(tmpLine); // пробуем закомментить эту строку
   end;
    ShowMessage(tmpLine);
    TextFile.Free;
end;

begin
end.

Без комментариев...

mikhail_a wrote:

Стоит задача закинуть базу MySQL на хостинг, чтобы к ней сотрудники имели доступ и из дома.

А ssh-туннель на putty не..? Одна строчка в параметре запуска и база у всех по адресу 127.0.0.1:3306...
И не надо никах whm-ов cPanel-ных с мудреными проверками...

Нет явного типа AnsiString...

mikhail_a wrote:

Каким образом реализовать в MVD следующий php код?

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);

    $header[0] = "Authorization: whm $user:$token";
    curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
    curl_setopt($curl, CURLOPT_URL, $query);

    $result = curl_exec($curl);

    $http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);

const url = 'https://your-site.hz';  
      user = 'юзернейм';
      token = 'токен';


var whr : Variant;


procedure HTTPRequest(Sender:TObject);
begin
 TdbButton(Sender).Enabled := false; 
try
    try

        // Эквивалент $curl = curl_init();
        whr := CreateOleObject('WinHttp.WinHttpRequest.5.1');

        // Эквивалент curl_setopt($curl, CURLOPT_URL, $query);
        whr.open('GET', url, true);

        // Эквивалент CURLOPT_SSL_VERIFYPEER и curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
        whr.Option(4) := 13056;

        // CURLOPT_RETURNTRANSFER - не требуется

        // Эквивалент $header[0] = "Authorization: whm $user:$token";
        whr.SetRequestHeader('Authorization',Format('whm %s:%s',[user,token]));

        // Эквивалент curl_exec($curl);
        whr.Send();

        whr.WaitForResponse(5);  // таймаут ожидания ответа в секундах

        //  Эквивалент curl_getinfo($curl, CURLINFO_HTTP_CODE);
        ShowMessage(whr.Status)

    except
      // ShowMessage(ExceptionMessage);  // раскомментить для просмотра ошибок
    end;
finally
   TdbButton(Sender).Enabled := true; 
    whr := 0;
end;
end;


procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
    HTTPRequest(Sender);
end;

begin        

end.

330

(6 replies, posted in Talks about all)

mikhail_a wrote:

Настройки данного форума провоцируют пользователей не делать поиск, а задавать вопросы.
Проблема в том, что функция поиска позволяет делать поисковые запросы только с интервалом в 30 секунд.
Очень редко удается с первого же запроса найти нужную информацию.
И это дурацкое временное ограничение просто не дает возможности нормально найти что нужно.
Вот и пишут пользователи вопросы, хотя ответ на их вопрос можно найти в два-три запроса smile

Немного не в сабж... Речь именно о халявщиках. У них прямо в контексте вопроса явно или скрыто проглядывается: "сделай за меня".
К таким лично я отношусь отрицательно.
Положительно же - к двум категориям людей:
1. Кто хочет и пытается что-то сделать сам, и это отчетливо видно.
2. Кто не хочет сделать сам, но сразу обозначает, что за решение готов вознаградить финансово (у меня есть несколько таких, кто пришел к этому в силу возраста или занятости, либо банально - отсутствия глубинного интереса к программированию).

P.S. А с халявщиками разговор короткий - или гони бабло на бочку или дуй лесом...

Не вижу проблем, работает все. А если и есть какой-то баг, то все решаемо (автор на связи никуда не пропал).
А про велосипед промолчу... Жутко представить даже как будет выглядеть рама.

332

(4 replies, posted in Russian)

Жесть...
Для получения количества пробелов достаточно отнять от длины строки ее длину полученную в результате замены пробелов.

333

(4 replies, posted in Russian)

Есть способ проще. А для чего (если это не секрет) считать пробелы?

В каком смысле..?

k245 wrote:

Попробовал запустить экзешник из архива - ошибка выполнения.

Подкрутил что-то там... Вроде работает (проверил на чистой винде).
Только сборку делать геморно. Каждая компиляция ее будет грохать.

k245 wrote:

А что за магия с манифестом? )))

Попробовал по этому рецепту...

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

k245 wrote:
vovka3003 wrote:

regsvr32 из SysWOW64 если..?

выдает ошибку:
...

https://i.imgur.com/JFwpjEy.png
От имени администратора.

k245 wrote:

осталось проверить вариант подключения DLL через DynamicWrapperX...

Очень кучерявое решение выходит... Тогда уже проще автору dll-ку в сток вшить.

Предыдущую версию возьмите. Она без глюков.

P.S. Простая регистрация (по прилагаемой к библиотеке инструкции) запуском regsrv32 вообще не выполняется - выдаёт ошибку установки сервера.

regsvr32 из SysWOW64 если..?

А что запрещает использовать в MVD готовые решения?

А смысл, если есть готовое (и даже бесплатное) строить очередной велик..?

Классно! Вы одной табличкой "накрыли" кучу плагинов и сервисов, годами спорящими о правильности склонений... А еще представляете - они гады за это денег в три шкуры дерут.
А тут - х..як и в продакшн!
У меня например фамилия заканчивается на "ий". И она НЕ склоняется.

344

(4 replies, posted in Russian)

sibprogsistem wrote:

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

"Я создал переменную в скрипте... Как узнать - какую переменую я создал в скрипте?"
(примерно так тогда звучит вопрос).

345

(4 replies, posted in Russian)

http://myvisualdatabase.com/forum/viewtopic.php?id=6030

Можно написать модуль для этого сервиса: https://morpher.ru/ws3/

347

(4 replies, posted in Russian)

SumanR wrote:

Всем привет , вопрос просто й, есть у кого нить готовая такая работа? (файл прикреплю)

Очевидно такая "готовая работа" есть у Дмитрия Иванова...

RasNikGal wrote:

.. чуть чуть нето что надо..

Хм, интересный вы товарищ.. Derek вам выдал что спросили.


"То, что надо" выглядит примерно так:

  form1.edit1.Text := form1.tablegrid1.cells[0,arow];
  form1.edit2.Text := form1.tablegrid1.cells[1,arow];
  form1.edit3.Text := form1.tablegrid1.cells[2,arow];

А выполнять при перемещении по таблице отдельные sql-запросы для каждого поля - настойчиво не рекомендую (это неправильно)...

['0'..'9',#8]

350

(5 replies, posted in Russian)

Это стандартное окно Windows. Можно перехватить его в цикле c помощью GetForegroundWindow, затем, используя полученный хендл родителя перечислить дочерние компоненты (FindWindowEx), отыскать нужный и послать ему сообщение WM_CLOSE в SendMessage.