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

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    Примерно так:
    Code:
    var
       s,temp: String;
       links:array of String;
       i: integer;
    begin
       s:=' <option  value="avtoinst">avtoinstruktor.in.ua (avtoinst)</option><option  value="avtostek">avtosteklo.kh.ua (avtostek)</option> ';
       temp:=s;
       While pos('option  value=',temp)>0 do
        begin
         SetLength(links,length(links)+1);
         links[length(links)-1]:=copy(temp,pos('>',temp)+1,length(temp));
         links[length(links)-1]:=copy(links[length(links)-1],1,pos(' ',links[length(links)-1])-1);
         delete(temp,1,Pos('</option>',temp)+length('</option>'));
        end;
       for i:=0 to length(links)-1 do
        ShowMessage('link #'+IntToStr(i)+' = '+links[i]);
    end;
    Temp - временная переменная, нужна только для того, чтобы не испортить исходный текст.
    i - нужна только для перечисления.
     
  2. Триэль

    Триэль Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    20
    Likes Received:
    10
    Reputations:
    0
    Попросил друга написать небольшую утилитку для запуска такой штуки как BOA Soft PostInstaller с нужными мне параметрами. Получилось вот что:

    Code:
    program CMD;
    
    {$R 'run.res' 'run.rc'}
    
    uses
      Forms,
      Windows,
      SysUtils;
    
    begin
    WinExec(pchar(ExtractFilePath(Application.exename)+'Presetup.exe /ini:PS_EN.INI /altskin:"\skin\SKIN_EN.INI"'),SW_HIDE);  
    end.
    
    Проблема в том, что под XP код шикарно работает, а под Vista/7 запускается только если установить режим совместимости с XP. Поскольку софт должен распространяется дальше, это не вариант. Можно ли в самом коде программы указать режим совместимости с XP и, например, запрос прав админа?

    Спасибо )
     
  3. resulteeer

    resulteeer Banned

    Joined:
    10 Aug 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Можно распарсить и загнать в массив)
     
  4. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Разбей с помощью TStringList например, чтобы велосипед не писать
    PHP:
    var
     list: 
    TStringList;
    begin
      
    list := TStringList.Create;
      list.
    Delimiter := ';';
      list.
    DelimitedText := '12;13;161;333;1,623,67;42;4';
      
    AllocConsole;
      for 
    := 0 to List.Count do
        
    Writeln(list[i]);
      
    Readln;
      list.
    Free;
    end;
    В результате в list[0] - 12, list[1] - 13 и т.д.
     
    #6824 GhostOnline, 19 Sep 2010
    Last edited: 19 Sep 2010
  5. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Пусть в Str уже находиться этот текст.
    Code:
    var
      Str: String;
      i: Integer;
      arr: array[1..10] of Real;
    begin
      i := 1;
      while Str <> '' do
      begin
        if pos(#13#10, Str) = 1 then
        begin
          Delete(Str, 1, 2);
          Continue;
        end;
        arr[i] := StrToFloat(copy(Str, 1, pos(';', Str) - 1));
        inc(i);
      end;
    end;
    Считать строку из файла можно так:
    Code:
    var
      F: TextFile;
      Str, Str2: String;
    begin
      AssingFile(F, 'имя файла');
      Reset(F);
      Str := '';
      while not EOF(F) do
      begin
        Readln(F, Str2);
        Str := Str + Str2;
      end;
      Close(F);
    end;
     
  6. Redeemer

    Redeemer Member

    Joined:
    3 Jul 2010
    Messages:
    203
    Likes Received:
    24
    Reputations:
    1
    Попробуй так:
    Code:
    var
      ExecInfo: TShellExecuteInfo;
    begin
      FillChar(ExecInfo, SizeOf(ExecInfo), 0) ;
      with ExecInfo do begin
        cbSize := SizeOf(TShellExecuteInfo) ;
        lpClass:='.exe';
        lpVerb:='runas';
        fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_CLASSNAME;
        Wnd := Application.Handle;
        lpFile := PChar(ExeFile) ;
        lpDirectory := PChar(ExtractFilePath(ExeFile)) ;
        nShow := SW_SHOWNORMAL;
      end;
      ShellExecuteEx(@ExecInfo);
    ExeFile - запускаемый экзешник
     
    #6826 Redeemer, 19 Sep 2010
    Last edited: 20 Sep 2010
    1 person likes this.
  7. le-mon

    le-mon New Member

    Joined:
    11 Apr 2007
    Messages:
    50
    Likes Received:
    2
    Reputations:
    -5
    Помогите спарсить параметр из исходного кода.

    PHP:
    <script type="text/javascript">
        
    vukuView('video'28765'15a1d34170a76fd3b1fbd85f5e8d7cab0fbf5996');

    PHP:
    begin
     idhttp1
    .HandleRedirects:=true;
     
    StrPage:=idhttp1.Get('http://blablablai.ru/');
     
    Data:=TstringList.Create;
     
    Data.Add('st.posted=ВСТАВИТЬ СЮДА');
     
    Data.Add('st.email='+Edit1.Text);
     
    Data.Add('st.password='+Edit2.Text);
     
    Data.Add('button_go=Войти');
     
    StrPage:=idhttp1.Post(Data);
     if 
    Pos('Logoff'StrPage)<>0 then
      Label3
    .Caption:='Вошли'
     
    else Label3.Caption:='не зашли';
     
    Data.Free;
    end;

    т.е. 15a1d34170a76fd3b1fbd85f5e8d7cab0fbf5996 подставить в пареметр 'st.posted
     
    #6827 le-mon, 21 Sep 2010
    Last edited: 21 Sep 2010
  8. winlogon.exe

    winlogon.exe Active Member

    Joined:
    5 Jun 2009
    Messages:
    31
    Likes Received:
    129
    Reputations:
    13
    [​IMG]
    что это может быть?)
     
    1 person likes this.
  9. NemeZz

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    Если ZZZ мало, то у вас идёт обращение по ссылке равной nil.
    Другими словами - объект не создан, а ты уже к нему обращаешься. Подробнее - читай статью
     
    1 person likes this.
  10. NemeZz

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    Code:
       temp:='<script type="text/javascript">'#13#10+'vukuView(''video'', 28765, ''15a1d34170a76fd3b1fbd85f5e8d7cab0fbf5996''); ';
       param:=copy(temp,pos(', ''',temp)+length(', '''),pos(''');',temp) - (pos(', ''',temp)+length(', ''')));
    Одна строчка, первая - это присваивание. Двойные кавычки - экранирование делфи.
    Чтобы было понятней - копируем откуда есть в куда надо с позиции запятой_пробел_кавычки (это все в кавычках - синтаксис делфи) по позицию кавычки скобочки точки с запятой минус начальная позиция.
     
  11. life:)

    life:) Banned

    Joined:
    9 Sep 2010
    Messages:
    98
    Likes Received:
    18
    Reputations:
    8
    Скажите почему не работает?
    Паскаль

    BEGIN
    Write('Начали!');
    Write( 8+1) ;
    Write( 5-2)
    END.



    Извеняюсь это моя вина была в readln
    BEGIN
    Write('Начали!');
    Write(8+1);
    Write(5-2);
    readln
    END.
     
    #6831 life:), 22 Sep 2010
    Last edited: 22 Sep 2010
  12. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Есть такой вопрос, как можно получить количество установленных жестких дисков в системе?
     
  13. Artist

    Artist Member

    Joined:
    10 Jul 2010
    Messages:
    89
    Likes Received:
    5
    Reputations:
    0
    http://www.z-oleg.com/delphi/hardw1.htm тут попробуй найти.
     
  14. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Artist, ты не понял, мне нужно получить количество установленных физических жестких дисков, а не логических разделов на всех HDD, читай внимательнее)
     
  15. php_casper

    php_casper New Member

    Joined:
    6 Jun 2010
    Messages:
    64
    Likes Received:
    1
    Reputations:
    1
    Мне нужно например взять одну страницу в сети, спарсить с нее параметры и вывести. Как лучше сделать, скачать на жестяк страницу и парсить её на компе или на лету?
     
  16. brutos

    brutos Member

    Joined:
    25 Nov 2009
    Messages:
    123
    Likes Received:
    27
    Reputations:
    8
    На лету, конечно.
     
  17. NemeZz

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    думаю это тебе поможет. Если нет - копай в сторону WMI
    Ну и еще ссылочка по теме
     
    2 people like this.
  18. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    NemeZz, спасибо, но как я понял нет ничего, кроме как пробовать открывать в цикле hdd, сделал так:

    Code:
    function GetHardCount: Integer;
    var
      hDevice: THandle;
    begin
      Result:= 0;
      while True do begin
        hDevice:= CreateFile(PChar('\\.\\PhysicalDrive' + IntToStr(Result)), 0,
                             FILE_SHARE_READ or FILE_SHARE_WRITE,
                             nil, OPEN_EXISTING, 0, 0);
    
        if hDevice = INVALID_HANDLE_VALUE then Break else try
          Inc(Result);
        finally
          CloseHandle(hDevice);
        end;
      end;
    end;
    
     
    #6838 alexey-m, 23 Sep 2010
    Last edited: 23 Sep 2010
  19. AHTOLLlKA

    AHTOLLlKA Member

    Joined:
    1 Feb 2005
    Messages:
    225
    Likes Received:
    35
    Reputations:
    22
    можете подсказать как мне сделать службу (сервис)
    на чтоб при ее старте еще и вылазило окно (Form)
    и все на виндовс 7 ..... я почитал что в семерке незапустить интерактивные службы =\
    тоесть как работать мне с рабочим столом и выводить форму... ?
     
  20. php_casper

    php_casper New Member

    Joined:
    6 Jun 2010
    Messages:
    64
    Likes Received:
    1
    Reputations:
    1
    Подскажите как сменить статусбар на отличающийся от стандартного, который полосочками?
     
Thread Status:
Not open for further replies.