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

    k0tt0d Member

    Joined:
    19 Nov 2009
    Messages:
    52
    Likes Received:
    20
    Reputations:
    4
    МongBa†, прокси вида 1234.1234.1234.1234:123456 не должны отбираться
    вот тоже поразвлекался
    Code:
    Function GetUrls(source:string):string;
    var i:integer;
        a,b:integer;//a-идем влево,b-вправо
        port:string;//порт у прокси
        ip1,ip2,ip3,ip4:string;//октеты прокси
    begin
    result:='';
    for i:=1 to length(source) do
      if source[i]=':' then
                  begin
                  port:='';
                  b:=i+1;//счетчик для порта идем вправо от двоеточия
                  if (source[b] in ['1'..'9'])=false then continue;//порт должен начинаться с числа 1..9
                  while source[b] in ['0'..'9'] do
                    begin
                    port:=port+source[b];
                    inc(b);
                    end;
                  if ((strtoint(port)>0) and (strtoint(port)<=65535))=false then continue;//порт не верен
    
                  a:=i-1;//счетчик для айпишника, идем влево от двоеточия
    
                  ip1:='';/////////////
                  ip2:='';// 4 октета, из которых состоит айпишник
                  ip3:='';//
                  ip4:='';/////////////
    
                  while source[a] in ['0'..'9'] do
                    begin
                    ip4:=source[a]+ip4;
                    dec(a);
                    end;
                  if ((source[a]='.') and (length(ip4)>0) and (strtoint(ip4)>=0) and (strtoint(ip4)<=255))=false then continue;
                  dec(a);//прыгаем через 3 точку
    
                  while source[a] in ['0'..'9'] do
                    begin
                    ip3:=source[a]+ip3;
                    dec(a);
                    end;
                  if ((source[a]='.') and (length(ip3)>0) and (strtoint(ip3)>=0) and (strtoint(ip3)<=255))=false then continue;
                  dec(a);//прыгаем через 2 точку
    
                  while source[a] in ['0'..'9'] do
                    begin
                    ip2:=source[a]+ip2;
                    dec(a);
                    end;
                  if ((source[a]='.') and (length(ip2)>0) and (strtoint(ip2)>=0) and (strtoint(ip2)<=255))=false then continue;
                  dec(a);//прыгаем через 1 точку
    
                  while source[a] in ['0'..'9'] do
                    begin
                    ip1:=source[a]+ip1;
                    dec(a);
                    end;
                  if ((strtoint(ip1)>0) and (strtoint(ip1)<=255))=false then continue;
    
                  result:=ip1+'.'+ip2+'.'+ip3+'.'+ip4+':'+port+#13#10+result;//дописываем проксю в начало списка
                  end;
    end;
     
  2. Империал

    Joined:
    11 Mar 2010
    Messages:
    1,224
    Likes Received:
    58
    Reputations:
    1
    Каким образом возможно восстановить инструменталюную панель в Delphi?
    Опишите подробно все способы, желательно с картинками
     
  3. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    View=>Tool palette не?
     
  4. vaddd

    vaddd Member

    Joined:
    6 Jan 2009
    Messages:
    140
    Likes Received:
    19
    Reputations:
    9
    есть файл из 2000 строк типа
    name, блаблабла...
    name2, блаблабла...
    ...

    нужно получить файл 2 со значениями

    name
    name2
    ...

    написал на делфи простую процедуру

    но она тупо копирует файл

    помогите плз
     
  5. $Robin

    $Robin Member

    Joined:
    25 Jun 2010
    Messages:
    47
    Likes Received:
    5
    Reputations:
    0
    записывай "b", a не "a"
    Writeln (v,b);
     
    1 person likes this.
  6. Voland-791

    Voland-791 Member

    Joined:
    1 May 2009
    Messages:
    163
    Likes Received:
    13
    Reputations:
    5
    Интересует как можно спрятать иконку нужной проги в трее? оч нужн))
     
  7. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Всем привет. Есть задание: сдвиг элементов массива на заданное число позиций. Проблема в следующем: процедура в которой будет выполняться сдвиг должна быть написана с помощью ассемблерных вставок, а нам про асму вообще ничего не читали, и сам в нем я знаю ток как пару чисел сложить. :( Заранее спасибо.
     
  8. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Или хотя бы объясните мне дураку в чем здесь ошибка
    Code:
    function sum():integer;
    var
      mas: array of integer;
    begin
      setlength(mas,3);
      mas[0]:= 2;
      mas[1]:= 8;
      mas[2]:= 5;
      asm
        xor eax, eax
        xor esi, esi
        mov ecx, 3
        @nxt:
          add eax, mas[esi]
          add esi, 4
        loop @nxt
        mov @Result, eax
      end;
    end;
     
  9. waik

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

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    finnk дочитал до mas: array of integer;

    Когда объявляешь массив нужно указывать кол-во его элементов.

     
    #8009 waik, 21 Mar 2011
    Last edited: 21 Mar 2011
  10. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Так как вы говорите уже пробовал и вот что выходит:
    Code:
    add eax, mas[esi] ;Operand size mismatch
     
  11. waik

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

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    finnk с асмой не ко мне.Могу вам на паскальке полностью запилить решение,но не на асме.
     
  12. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    да тут как раз вся проблема и есть в том, что сделать нужно на асме
     
  13. geve

    geve New Member

    Joined:
    20 Mar 2011
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    помогите мне нужно авторизоваться вконаткте в дельфи пробовал 3 способами которые нашёл в гугле но чёто не авторизовывается когда сомтрел сниффером то перебрасывает на мою страницу где написано что нужно авторизоваться я думал это из за кук я подключал куки менеджер но безрезультатно
     
  14. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    нужно воспроизведения звук на линуксе и желательно на винде.
    пока выбрал OpenAL. так вот как в нем:
    1) воспроизвести звук
    2) по завершении воспроизведения сгенерировать событие
    3) прервать воспроизведение
     
  15. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    finnk, тут пару доков по использованию ассемблера в delphi, все очень неплохо описано и показано в примерах процедур
     
  16. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    waik,
    массив может быть безразмерным - динамический массив. В таком случае перед его использованием нужно задать размер функцией SetLength();
    Почитайте _http://old.softerra.ru/review/program/20000/page1.html

    finnk,

    Code:
    function sum():integer;
    var
      mas: array of integer;
    begin
      setlength(mas,3);
      mas[0]:= 2;
      mas[1]:= 8;
      mas[2]:= 5;
      asm
        xor eax, eax
        mov esi,mas
        mov ecx, 3
        @nxt:
          add eax,dword ptr [esi]
          add esi,4
        loop @nxt
        mov Result, eax
      end;
    end;
     
  17. Voland-791

    Voland-791 Member

    Joined:
    1 May 2009
    Messages:
    163
    Likes Received:
    13
    Reputations:
    5
    Кто нить подскажет функцию, или сторонний компонент, для скрытия сторонней проги из трея
     
  18. spitfire3271

    spitfire3271 New Member

    Joined:
    13 Nov 2010
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Добрый день!
    Проболел лекцию по проге, следовательно возникает необходимость разобраться в такой теме как "Указатели.Динамические структуры данных"
    если кто знает отличные гайды, мануалы, выложите плиз, буду очень благодарен!
     
  19. ImDoode

    ImDoode New Member

    Joined:
    24 Mar 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Не хотелось бы разочаровывать, но не все так просто. Чтоб выполнить данную задачу придется немного поработать мозгами и копипастом. Вообще формула успеха
    прямые руки+30 минут свободного времени+гугл
    В раздел uses добавляем FWSysTrayInfo (см аттач)
    И затем небольшой код:
    Code:
    var
    SysTray: TFWSysTrayInfo;
    begin
    SysTray := TFWSysTrayInfo.Create;
    SysTray.UpdateInfo;
    for i := 0 to SysTray.IconCount - 1 do
    if ExtractFileName(SysTray.IconItem[i].szAppPath)='opera.exe' then SysTray.DeleteIco(i);
    end
    
    Где opera.exe - имя процесса, чей значек необходимо скрыть.
    Данный код стабильно работает на Windows XP sp2. На Windows Vista/7 он работает только если в настройках тулбара стоит "Всегда отображать все значки на тулбаре"
    Еще как вариант, можно копать в сторону поиска и уничтожения хэндла... Но мне этот способ не помог. Если вдруг появится необходимость - лс.
    Вы не можете прикреплять файлы
    http://rghost.ru/4918832
     
    #8019 ImDoode, 25 Mar 2011
    Last edited: 25 Mar 2011
  20. ImDoode

    ImDoode New Member

    Joined:
    24 Mar 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    И сразу вопрос к местным кодерам.
    Перерыл значительную часть гугла по теме "FTP сервер на Delphi". Большинство из примеров оказались инвалидами.
    На дельфи соурс нашел хороший пример консольного фтп сервера (http://rghost.ru/4918838), но есть проблема: как научить сервер открывать доступ не только к системному диску C, но а так же к другим дискам? Дайте доработанный код программы, либо рабочий пример. Заранее огромное спасибо, по ответу - плюсик в карму.
     
Thread Status:
Not open for further replies.