[ 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. Isaev

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

    Joined:
    25 Jul 2007
    Messages:
    120
    Likes Received:
    19
    Reputations:
    6
    Обычно 0 баллов дают только в том случае, если идея решения абсолютно не соответствует тому, что требовалось... Вряд ли это из-за EOF. Ну как-то так можно, но это изврат imho EOF для того и существует
    Code:
    Var
      F:File;
      N,E:Integer;
      B:Byte;
    Begin
    {$I-}
      AssignFile(F,'name.dat');
      Reset(F,1);
    {$I+}
      If IOResult<>0 Then
        Begin
          Memo1.Lines.Append('Error');
          Exit;
        End;
      N:=0;
      {$I-}
      BlockRead(F,B,1);
      {$I+}
      While IOResult=0 Do
        Begin
          Memo1.Lines.Append(IntToStr(N)+'-'+IntToHex(B,2));
          Inc(N);
          {$I-}
          BlockRead(F,B,1);
          {$I+}
        End;
      Memo1.Lines.Append('EOF');
      CloseFile(F);
     
  2. makkor32

    makkor32 New Member

    Joined:
    29 Sep 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    как сделать на делфи чтоб когда нажимаешь на чекбокс сменивалась форма типа как на скринах:
    [​IMG]
    [​IMG]
     
    #7202 makkor32, 13 Nov 2010
    Last edited: 13 Nov 2010
  3. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    как вариант в OnClick чекбокса прописывать
     
  4. makkor32

    makkor32 New Member

    Joined:
    29 Sep 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Можно поподробнее? плиз я просто не очень знаю делфи.... Заранее спасибо!
     
  5. Isaev

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

    Joined:
    25 Jul 2007
    Messages:
    120
    Likes Received:
    19
    Reputations:
    6
    постыдились бы с такими вопросами
    google переполнен примерами, учитесь юзать поиск
     
  6. beBoss

    beBoss New Member

    Joined:
    29 Sep 2010
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    Well guys, first I'm sorry about that I'm writing in english...
    Thanks for examples and help you gave me :)
    But now I have stange mistake, I can't get the real page which I want to parse with indy (delphi 7). Lol...

    Code:
    procedure TForm1.btnGetResultsClick(Sender: TObject);
    var
      Client : TidHTTP;
      s, MatchDate: string;
    begin
      client := TidHttp.Create(nil);
      try
        s := Client.Get('http://www.sportal.bg/statistics_schedule.php?champ=5&season=50&team=0&round='+'1387') ;
    	//or link http://www.sportal.bg/statistics_schedule.php?champ=5&season=50&team=0&round=1387
      finally
        client.Free;
      end;
      memResults.Text  := s;
    end;
    Well, do I have to set any special setting on indy ? I call indy dynamically (without drag & drop on the form). And in the memo is another page - stange...

    p.s. Well my general idea is to add color tags for forums:
    PHP:
    [color=#008000]team 1 - team 2[/color]  [color=#FF8000]date[/color] [color=#0000BF]hour[/color]  [color=#FF0000]result[/color]
    result in forum with tags: [​IMG]

    I have no problem to copy these 10 matches and paste in memo - just I don't know how to add these tags to all :(
     
    #7206 beBoss, 14 Nov 2010
    Last edited: 14 Nov 2010
  7. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Всем привет, дали такое задание:
    PHP:
    Задан изографНадо обойти все вершины графав каждой вершине побывав не более одного разаЕсли это невозможното вывести соответствующее сообщениеГраф задается двоичной матрицей смежностиМатрица считывается из файлаПервая строка файла – количество N вершин графадалее указывается сама матрица N*N.Пусть на графе обход уже начатОпределитьможно ли завершить этот обходЕсли дато указать последовательность обхода.
    Реализовать с помощью рекурсии
    Помогите люди добрые кто чем может)))Проблема собственно в том, что само задание понять не могу, посмотрел в википедии определение изограф, к моей задаче эт точно никакого отношения не имеет.С графами менного понятней, но все же, может у кого алгоритм сохранился или инфа какая.Реализовать алгоритм сложности не составит, мне бы его тока составить))Заранее спасибо.
     
  8. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Maybe
    memResults.Lines.Text := s; ?
    or better
    memResults.Lines.Text := Client.Get(...);
     
  9. moodoone

    moodoone Member

    Joined:
    21 Oct 2009
    Messages:
    144
    Likes Received:
    38
    Reputations:
    5
    Подскажите что именно нужно сделать?
     
  10. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Омг зачем нужна эта функция тебе, когда есть родимый StringReplace ?
    Просто вызывай так
    str := StringReplace('исходный текст', 'подстрока', 'на что заменяем', []);
     
    1 person likes this.
  11. beBoss

    beBoss New Member

    Joined:
    29 Sep 2010
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    The same... Doesn't get the real page. Very strange. :(
     
  12. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Try use Http Analyzer to detect possible defects and compare your reqeusts to browser's requests.
    In any case dinamic using TIdHttp is not reason for it.

    Sorry for my horrible english
     
  13. beBoss

    beBoss New Member

    Joined:
    29 Sep 2010
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    With opera :

    request:
    Code:
    User-Agent: Opera/9.80 (Windows NT 6.1; U; en) Presto/2.7.39 Version/11.00
    Host: www.sportal.bg
    Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    Accept-Language: bg-BG,bg;q=0.9,en;q=0.8
    Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
    Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
    Referer: http://www.sportal.bg/news_category.php?category=2
    Cookie: anketa_voted_465=1; anketa_voted_476=1; anketa_voted_482=1; anketa_voted_519=1; anketa_voted_529=1; anketa_voted_532=1; anketa_voted_546=1; anketa_voted_556=1; anketa_voted_560=1; __utmz=250370137.1289750899.174.26.utmcsr=ads.zamunda.net|utmccn=(referral)|utmcmd=referral|utmcct=/indexrssnew1.php; static_path=http%3A%2F%2Fimg2.sportal.bg%2F; PHPSESSID=8c82a94d3ad12c6a36c8735064059075; adv_spam=1; __utma=250370137.776124878.1281886734.1289858167.1289860430.181; __utmc=250370137; __utmb=250370137.2.10.1289860430
    Cookie2: $Version=1
    Connection: Keep-Alive, TE
    TE: deflate, gzip, chunked, identity, trailers
    response:
    Code:
    HTTP/1.1 200 OK
    Date: Mon, 15 Nov 2010 22:45:38 GMT
    Server: Apache/2.2.15
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html
    

    With my program:

    request:
    Code:
    Content-Type: text/html
    Host: www.sportal.bg
    Accept: text/html, */*
    User-Agent: Mozilla/3.0 (compatible; Indy Library)
    response:
    Code:
    HTTP/1.1 200 OK
    Date: Mon, 15 Nov 2010 22:43:50 GMT
    Server: Apache/2.2.15
    Set-Cookie: static_path=http%3A%2F%2Fimg2.sportal.bg%2F; expires=Tue, 16-Nov-2010 04:43:50 GMT; path=/; domain=.sportal.bg
    Set-Cookie: PHPSESSID=a4de90614fb4fc5ad08a11caba768261; path=/; domain=.sportal.bg
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html
    But I really don't understand what to do and how to fix it. My Knowledge is too small.
     
  14. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    beBoss
    Just assign TIdCookieManager to TIdHttp and do your request twice, or add cookie 'adv_spam=1' to request headers.
    i just checked it
     
    #7214 GhostOnline, 16 Nov 2010
    Last edited: 16 Nov 2010
  15. beBoss

    beBoss New Member

    Joined:
    29 Sep 2010
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    I have no idea how to do that :(
    My code:
    Code:
    procedure TForm1.InitHTTPRequest;
    begin
      with Client do begin
        Request.Connection:= 'keep-alive';
        Request.ContentLength:= -1;
        Request.ContentRangeEnd:= 0;
        Request.ContentRangeStart:= 0;
        Request.Accept:= 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
        Request.AcceptCharSet:= 'ISO-8859-1,utf-8;q=0.7,*;q=0.7';
        Request.AcceptLanguage:= 'bg,en-us;q=0.7,en;q=0.3';
        Request.AcceptEncoding:= '';
        //Request.AcceptEncoding:= 'gzip,deflate';
        Request.BasicAuthentication:= False;
        Request.Host:= 'www.sportal.bg';
        Request.Referer:= 'http://www.sportal.bg/';
        Request.UserAgent:= 'beBoss';
      end;
    end;
    
    procedure TForm1.btnGetResultsClick(Sender: TObject);
    var
      page, MatchDate: string;
      RegExp: TRegExpr;
      i : integer;
    begin
        page := Client.Get('http://www.sportal.bg/statistics_schedule.php?champ=4&season=56&team=0&round=1388');
        page := UTF8Decode(page);
    
        RegExp := TRegExpr.Create;
        RegExp.InputString :=  page;
        RegExp.Expression := '<td class="programaDate">(.*?)</td>';
        if RegExp.Exec then
          begin
                memResults.lines.Add(RegExp.Match[1]);
          end;
        RegExp.Free;
    end;
    I have to double click to get the date... I think that I want to get these matches is very, very hard (for me ofcourse) and I bore you with crap...
     
  16. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    beBoss
    There is two ways:
    1)In uses add IdCookieManager
    After you create TIdHttp:
    Before destroying TIdHttp:
    and:
    2)Add cookie to request headers manually
    or
    I could be wrong, because i have no Indy (i use ICS)

    Isaev
    а ты проверил прежде чем подвергать сомнению мои слова?

    Например что?
    И про какой login речь вообще?
     
    #7216 GhostOnline, 16 Nov 2010
    Last edited: 16 Nov 2010
  17. Isaev

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

    Joined:
    25 Jul 2007
    Messages:
    120
    Likes Received:
    19
    Reputations:
    6
    Там куков целая телега цепляется... И вряд ли они так просто задаются, т.к. обычно выдаются для каждой новой сессии разные, т.к. собирать их надо начинать на этапе logina на сайт

    Indy цепляет куки глючно очень, т.ч. используйте что-нибудь другое
     
  18. beBoss

    beBoss New Member

    Joined:
    29 Sep 2010
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    GhostOnline
    Finally I got the date. I used the second way without cookie manager-a. Now if you have free time ofcourse and idea, could you help me to parse the page :). Just if you have time and wish :p
    Thank you again for your help !
     
  19. Aspanu

    Aspanu New Member

    Joined:
    16 Nov 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Прошу скорее совета, чем прямой помощи. Играюсь тут по старой памяти с BDE/Paradox.
    Проблема такова - нельзя связать инкрементное поле-счетчик одной таблицы с числовым полем другой. Пишет Database Desktop мне, что типы данных разные.
    Как правильно выйти из такой ситуации?
    И ещё - взаимодействие таблиц "кошерно" делать прямо при создании оной или в коде из среды Delphi ?

    // З.Ы. пусть модеры потрут идентичный вопрос из топика про лабы, перепутал разделы
     
  20. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Найти среднее арифметическое элементов с четными номерами массива: C=(-1, 5 0, 4 -3 , 6, 7, 6)

    паскаль
     
    #7220 MaTpOc, 16 Nov 2010
    Last edited: 16 Nov 2010
Thread Status:
Not open for further replies.