[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Всё более просто чем я себе предсталял спасибо
     
  2. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Есть ли аналог функции time() как в php но токо в делфи?

    time()

    Возвращает количество секунд, прошедших с начала Эпохи Unix (т.е. с 1 января 1970, 00:00:00 GMT по наше время)
     
  3. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    А эту дату от текущей отнимать не пробывал? ;)
     
  4. RAINUR2

    RAINUR2 New Member

    Joined:
    27 Aug 2009
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    есть вопросик,)можно ли на Турбо Паскаль 7 работать с аськой, ну там подключаться....
     
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Можно если найдешь 32-х битную версию и напишеш сам ICQ клиент.
    Но вообще паскаль считай умер, юзай делфи. Ненравится размер - откажись от VCL
     
  6. RAINUR2

    RAINUR2 New Member

    Joined:
    27 Aug 2009
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    ДА я это для интереса, не подскажите как на делфи???
     
  7. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Дайте книжку по Delphi "Програмирование для людей из раздела прогресирующего даунизма" или что то подобное, все книги сразу рассматривают готовое приложение, а переменные и постоянные не рассказано как делать.
     
  8. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Здравствуйте, уважаемые античатовцы. У меня возникла неожиданная проблемма с Indy. Программа должна делать загрузку файлов на хостинг. В процессе тестирования выяснилось, что программа отправляет в 2 раза больше трафика: если я загружал файл на 2 Мб - реально моя программа отправляет чуть больше 4-х. Я растерян. Кто встречался с подобным, подскажите решение проблеммы. Пользують D2010, Indy 10.5.5. Спасибо за внимание.
    Код загрузки:

    Code:
    function Upload(AURL, AFile: string): string;
    var formData: TIdMultiPartFormDataStream;
    begin
      formData := TIdMultiPartFormDataStream.Create;
      try
        // Добаляю параметры в formData
        // и файл:
        formData.AddFile('upsingle',AFile,GetContentType(AFile));
        try
          Result := idHTTP.Post(AURL,formData);
        except
          Result := '';
        end;
      finally
        formData.Free;
      end;
    end;
     
  9. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    =Zeus=, 10.5.5 вышла 19.12.2008, почти год назад. Поставьте версию поновее (вдруг поможет).

    Сегодняшняя ревизия indy 10.5.7 (rev.3853), с пофиксенным TIdMultiPartFormData (не по вашему случаю, но очень важно) - вылил на рапиду.
     
  10. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Поставил. Не помогло :(
     
  11. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    В какой кодировке содержится текст в Memo ?
     
  12. Patrik

    Patrik Elder - Старейшина

    Joined:
    15 Jan 2006
    Messages:
    42
    Likes Received:
    6
    Reputations:
    0
    ANSI, если не ошибаюсь.
     
  13. ErrorNeo

    ErrorNeo Elder - Старейшина

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    предыдущую копию этого вопроса (2 дня назад) удалил, по прежнему актуально.
    не верю что совершенно никто не знает
    за решение с меня +10.


    вопрос:
    как реализовать периодический отстук приложения внутри одного сокета?

    Вариант, который отстукивает каждые 60 секунд создавая новый сокет:
    Code:
    WSAStartup(MAKEWORD(2,0), wsaData);
    
    while not terminated do
      begin        
            sleep(60000);
            s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
            FillChar(addr, SizeOf(sockaddr_in), 0);
            addr.sin_family:=AF_Inet;
            addr.sin_addr.S_addr:=inet_addr('111.22.33.44');
            addr.sin_port:=htons(80);
            Connect(S,addr,SizeOf(TSockAddr));
            sendbuff := 
               'GET / HTTP/1.1'+ #13#10 +
               'Host: 111.22.33.44'+ #13#10#13#10;
            send(s, sendbuff[1] , Length(sendbuff), 0);
            closesocket(s);
      end;
    
    WSACleanup;
    Если вписать строку с send 2 раза(метод научного тыка), то на второй отстук внутри того же сокета ответа от хоста не будет. Добавлять
    Keep-Alive: 300
    Connection: Keep-Alive
    тоже бесполено. Видимо изначально нужно как-то до-другому открывать сокет.


    Заранее благодарю
     
  14. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    зачем именно внутри одного? вообще считается что для каждого соединения надо создавать свой сокет.
    по поводу Keep-Alive - не все серверы и не всегда будут слушаться этой инструкции. Тут желательно посмотреть что он отвечает, возможно там будет Connection: close
     
  15. axee

    axee New Member

    Joined:
    12 Oct 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Я взломал точку, все пароль пишу но мне видает что сеть ограничено или отсутствует что это? раньше все норм было подключался
     
  16. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    Здравствуйте, пишу автореггер на один сайт и требуется сделать его многопоточным , знаю что нужно делать с помощью TThread , но что то не получается(
    Запросы отправляются через IdHttp
     
  17. Скотти

    Скотти Member

    Joined:
    17 Sep 2009
    Messages:
    23
    Likes Received:
    8
    Reputations:
    0
    Nizhegorodets, хорошая стать про потоки в idhttp __http://www.delphisources.ru/pages/faq/base/http_protocol.html для начала как раз
     
    5 people like this.
  18. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Хороший пример: http://forum.antichat.ru/threadnav143556-1-10.html
     
  19. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Вон, на Делфикингдоме прочитал:

    Может в этом проблема, если 2 раза send написать? Ну, думаю не стоит упоминать, что между ними должен быть sleep(). А может действительно проблема в сервере...
     
    #4539 =Zeus=, 1 Nov 2009
    Last edited: 1 Nov 2009
    1 person likes this.
  20. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    Приветствую

    Вопрос такой:
    Есть программа Нужно узнать её версию и загрузить в переменную

    Нашол один способ:
    function GetMyVersion:string;
    type
    TVerInfo=packed record
    Nevazhno: array[0..47] of byte; // ненужные нам 48 байт
    Minor,Major,Build,Release: word; // а тут версия
    end;
    var
    s:TResourceStream;
    v:TVerInfo;
    begin
    result:='';
    try
    s:=TResourceStream.Create(HInstance,'#1',RT_VERSION); // достаём ресурс
    if s.Size>0 then begin
    s.Read(v,SizeOf(v)); // читаем нужные нам байты
    result:=IntToStr(v.Major)+'.'+IntToStr(v.Minor)+'.'+ // вот и версия...
    IntToStr(v.Release)+'.'+IntToStr(v.Build);
    end;
    s.Free;
    except; end;
    end;

    Но вот неужели нет более простого способа получить эти заветные циферки?

    Неужели программа нигде не хранит свою версию кроме как в ресурсах?
     
Thread Status:
Not open for further replies.