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

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    ну если ты используешь svn, то знаешь, что всегда можно сделать update с любой прошлой ревизии
     
    2 people like this.
  2. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Кхм... Спасибо. Пользуюсь давно, а вот о возможностях без вашего пинка точно бы не догадался :)

    Еще раз спасибо, нашел нужную ревизию :)

    Что касается antigate:

    Code:
    function recognize (filename: string; apikey: string; is_phrase: boolean; is_regsense: boolean; is_numeric: boolean; min_len: integer; max_len: integer): string;
    var
      ftype, tmpstr, captcha_id: String;
      i: integer;
      http: TIdHTTP;
      multi: Tidmultipartformdatastream;
    begin
      if FileExists(filename)=false then begin result:='ERROR: file not found'; exit; end;
      ftype:='image/pjpeg';
      if strpos(Pchar(filename),'jpg')<>nil then ftype:='image/pjpeg';
      if strpos(Pchar(filename),'gif')<>nil then ftype:='image/gif';
      if strpos(Pchar(filename),'png')<>nil then ftype:='image/png';
      multi:=Tidmultipartformdatastream.Create;
      multi.AddFormField('method','post');
      multi.AddFormField('key',apikey);
      multi.AddFile('file',filename,ftype);
      if is_phrase=true then multi.AddFormField('phrase','1');
      if is_regsense=true then multi.AddFormField('regsense','1');
      if is_numeric=true then multi.AddFormField('numeric','1');
      if min_len>0 then multi.AddFormField('min_len',inttostr(min_len));
      if max_len>0 then multi.AddFormField('max_len',inttostr(max_len));
      http:=TIdHTTP.Create(nil);
      tmpstr:=http.Post('http://antigate.com/in.php',multi);
      http.Free; multi.Free;
      deletefile(filename);
      captcha_id:='';
      if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
      if strpos(Pchar(tmpstr),'OK|')<>nil then captcha_id:=AnsiReplaceStr(tmpstr,'OK|','');
      if captcha_id='' then result:='ERROR: bad captcha id';
      for i:=1 to 12 do
      begin
        sleep (5000);
        http:=TIdHttp.Create(nil);
        tmpstr:=http.Get('http://antigate.com/res.php?key='+apikey+'&action=get&id='+captcha_id);
        http.Free;
        if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
        if strpos(Pchar(tmpstr),'OK|')<>nil then
        begin
          result:=AnsiReplaceStr(tmpstr,'OK|','');
          exit;
        end;
      end;
      result:='ERROR_TIMEOUT';
    end;
    На 10.5.7, посл. работать не будет. 10.5.6 - работает.
     
  3. aka_k4

    aka_k4 Member

    Joined:
    5 Feb 2009
    Messages:
    107
    Likes Received:
    30
    Reputations:
    0
    IdSMTP1.Host:='smtp.mail.ru'; //
    IdSMTP1.Port:=2525; //
    IdSMTP1.Username:=login; //
    IdSMTP1.Password:=pass; //
    IdSMTP1.AuthenticationType:=atLogin;
    with IdMessage1
    do
    begin

    From.Text :=Tema; //
    Recipients.EMailAddresses := [email protected]; //
    Subject := [email protected];
    if FileExists(Edit1.Text)
    then

    TIdAttachment.Create(idmessage1.MessageParts,C:\Program Files\1.txt);

    Этот кусок отправет нам файло 1.txt на почту. Подскажите, а как прекрутить к коду, чтоб оно отпровляло не файл, а какую ни буть функцию...Т.Е. нопример скопированную в буфер обмена картинку, или текст?

    Будет ли синтаксическе правельно применить след выражение?:

    var
    Msg: TIdMessage;
    begin
    Msg.Subject:=?тема сообщения?;
    Msg.Recipients.EMailAddresses:[email protected]?;
    Msg.From.Adress:[email protected]?;
    Msg.Body.Text:=SetTextBuf();
    Msg.Date:=StrToDate(?01.12.2004?);/
    end;
     
  4. Rebit

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

    Joined:
    7 Aug 2007
    Messages:
    85
    Likes Received:
    214
    Reputations:
    2
    Помогите решить =) С мну +10
     
  5. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    Rebit на нормальный русский переведи
     
  6. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    ну сохрани буфер в файл и делай атач этого файла
     
  7. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    а это Msg.Body.Text:=SetTextBuf(); неверно, потому что SetTextBuf - процедура а не функция
     
  8. aka_k4

    aka_k4 Member

    Joined:
    5 Feb 2009
    Messages:
    107
    Likes Received:
    30
    Reputations:
    0
    мнеб без атача, чтоб текс письма и было содержание буфера...

    Совершенно верно, тогда вот так? - SomeStringData_Variable := Clipboard.AsText;
     
  9. aka_k4

    aka_k4 Member

    Joined:
    5 Feb 2009
    Messages:
    107
    Likes Received:
    30
    Reputations:
    0
    + тожэ по делфе -

    как найти в 2х мерном масиве наибольшый елемент??
     
  10. DimkO

    DimkO Banned

    Joined:
    16 Nov 2008
    Messages:
    28
    Likes Received:
    3
    Reputations:
    0
    простой вопрос: какая процедура возвращает код ASCII из символа и наоборот,мне для сортировки нужно...=\
     
  11. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    код символа - Ord()
    наоборот - Char()

    например
    Code:
    caption:=IntToStr( Ord('a') );
     
  12. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Вот, ищи наздоровье, даже комменты написал :)

    Code:
    ...
    const n = 9; \\кол-во елементов
    var i, j, max: word;
    mas: array[1..N, 1..N] of byte; \\наш массив
    
    begin
    
      max := mas[1,1];
      for i:=1 to N do                  \\проходим по х
        for j:=1 to N do                \\проходим по у
          if mas[i, j] > max then    \\если текущий больше макс
            max := mas[i, j];           \\то он станет макс
      caption := IntToStr(max);  
    
    end;
     
    1 person likes this.
  13. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Как сделать что бы кнопка находящяяся в фокусе при нажатии энтера не генерировала событие onclick?
     
  14. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    Юзай событие OnMouseDown вместо OnClick
     
  15. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    bmp12, вот еще, кстати, попробуйте функцию (переписывал под себя, чтобы капчу на диск не сохранять)

    Code:
    function recognize (itype: string; key: string; image : tmemorystream) : string;
    var
      ftype, s, id: string;
      i: integer;
      http: tidhttp;
      multi: tidmultipartformdatastream;
    begin
      if strpos (pchar (itype), 'jpg') <> nil then ftype := 'image/pjpeg';
      if strpos (pchar (itype), 'gif') <> nil then ftype := 'image/gif';
      if strpos (pchar (itype), 'png') <> nil then ftype := 'image/png';
      multi := Tidmultipartformdatastream.Create;
      multi.AddFormField ('method', 'post');
      multi.AddFormField ('key', key);
      multi.AddObject ('file', ftype, image, 'captcha.' + itype);
      http := tidhttp.Create;
      s := http.Post ('http://antigate.com/in.php', multi);
      http.Free; multi.Free;
      id := '';
      if strpos (Pchar (s), 'ERROR_') <> nil then begin result := s; exit; end;
      if strpos (Pchar (s), 'OK|') <> nil then id := AnsiReplaceStr (s, 'OK|', '');
      if id = '' then result := 'ERROR: bad captcha id';
      for i := 1 to 20 do
      begin
        sleep (5000);
        http := tidhttp.Create;
        s := http.Get ('http://antigate.com/res.php?key=' + key + '&action=get&id=' + id);
        http.Free;
        if strpos (Pchar (s), 'ERROR_') <> nil then begin result := s; exit; end;
        if strpos (Pchar (s), 'OK|') <> nil then
        begin
          result := AnsiReplaceStr (s, 'OK|', '');
          exit;
        end;
      end;
      result := 'ERROR_TIMEOUT';
    end;
    Обращение: recognize ('jpg', ackey, image) - тип картинки / ас ключ / картинка в tmemorystream
     
  16. mobilka

    mobilka Member

    Joined:
    13 Oct 2009
    Messages:
    39
    Likes Received:
    5
    Reputations:
    0
    граждане простой вопрос. есть функция-
    s := SendFile('localhost', '/1.php', 'путь до файла');
    открываем файл через опендиалог и путь до файла загружается в листбокс (пример с:/хрень.rar) как сделать что бы этот же путь вставлялся в строчку 'путь до файла'
     
  17. Hellsp@wn

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    wolmer
    Code:
    'Connection: Close'[B]+#13#10+#13#10[/B];
     
    1 person likes this.
  18. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    mobilka
    Code:
    var path: string;
    path := OpenDialog1.FileName;
     
    #4398 =Zeus=, 16 Oct 2009
    Last edited: 16 Oct 2009
  19. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Hellsp@wn, спасибо!

    Народ так как все таки принять ответ html на winsock?

    Метод:
    Code:
          repeat
           dSize:=recv(s, recv1buf, 4096, 0);
           Memo1.lines.Add(recv1buf);
          until (dSize = 0) or (dSize = SOCKET_ERROR);
    Слишком долгий (то есть прога зависает на ~1 мин при этом коде)
     
  20. SENTRY

    SENTRY New Member

    Joined:
    28 Jul 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Как организовать окошко, в котором выбирается файл на диске? Типа как при нажатии кнопки Browse в любом приложении. Передачу пути выбранного файла в переменную и поле ввода я прикручу сам.
     
Thread Status:
Not open for further replies.