[ 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. 0verbreaK

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

    Joined:
    30 Apr 2008
    Messages:
    318
    Likes Received:
    42
    Reputations:
    -3
    UPX - уже давно палится АВерами, попробуй другую сигну вставить, например какогонибудь обсидиума.
     
  2. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    Можно эмулировать нажатие кнопки, я так делал когда появился kis7, тогда особо никто не знал или не делился как обходить его. точно так же можно эмулировать нажатие кнопок и радиобаттонов в аутпост.
     
  3. Andres

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

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Ребят, поясните мне очень просто в чем фишка констант и переменных, все статьи которые нахожу - немогу понять, объясните просто плизз..
     
  4. NorB

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

    Joined:
    20 Jul 2007
    Messages:
    109
    Likes Received:
    12
    Reputations:
    -2
    константа - какоето число или выражение которое изменять нельзя, а переменные меняяються, их значения, просто?=\
     
  5. 0verbreaK

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

    Joined:
    30 Apr 2008
    Messages:
    318
    Likes Received:
    42
    Reputations:
    -3
    Это общее определение. На примере:



    Локальные переменные не могут быть
    инициализированы по этому здесь
    применяем блок const

    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    const
       a: array [0..9] of Integer = (0,1,2,3,4,5,6,7,8,9);
    begin
       ...
    end;
    
    также константу, можно проинициализировать без явного указания типа

    Code:
    const
      str = 'This text initialized';
      N = 5;
    Также константы используются, для задания размера массива, для фиксированного вычесления определенного кол-ва, и это кол-во можно регулировать не вставляя каждый раз статически размерность массива, а правя константу объявленную выше, например:

    Code:
    const 
      n=5;
    
    var
      matrix: array [0..n, 0..n] of Integer;
    И тебе необходимо изменить только константу
     
  6. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Этот способ, имхо мазохизм.
     
  7. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    На то время я ничего более умного не придумал :)
    Я ж не про как ты ;)
     
  8. ZirroCool

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

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    Обьясните дураку почему так работает
    Code:
    for i:=0 to razmer do
      begin
        BlockRead(myFile, oneByte, 1);
        oneByte:= oneByte+c;
        seek(myfile,i);
        Blockwrite(cryptfile,oneByte,1);  
        seek(cryptfile,i); 
      end;
    а так нет???
    Code:
    for i:=0 to razmer do
      begin
        seek(myfile,i);
        BlockRead(myFile, oneByte, 1);
        oneByte:= oneByte+c;
        seek(cryptfile,i); 
        Blockwrite(cryptfile,oneByte,1);  
      end;
     
  9. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    В первом случае ты указываешь переместить указатель с которого начнется чтение в файле из которого читаешь, а во втором ты перемещаешь указатель в файле в который пишешь. конечно же ты будешь читать один и тот же байт. вообще попробуй так делать

    Code:
    var
      FromName,
      ToName    : String;
      myfile,
      cryptfile : file;
      NumRead,
      NumWritten: Integer;
      OneByte   : Byte;
    begin
      AssignFile(myfile, FromName);
      Reset(myfile, 1);
      AssignFile(cryptfile, ToName);
      Rewrite(cryptfile, 1);
      repeat
        BlockRead(myfile, OneByte, 1, NumRead);
        oneByte:= oneByte+c;
        BlockWrite(cryptfile, OneByte, 1, NumWritten);
      until (NumRead = 0) or (NumWritten <> NumRead);
      CloseFile(myfile);
      CloseFile(cryptfile);
    end;
     
  10. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Вообще, винапи рулит, зачем такой мазохизм?

    Code:
    BOOL ReadFile(
    
        HANDLE hFile,	// handle of file to read 
        LPVOID lpBuffer,	// address of buffer that receives data  
        DWORD nNumberOfBytesToRead,	// number of bytes to read 
        LPDWORD lpNumberOfBytesRead,	// address of number of bytes read 
        LPOVERLAPPED lpOverlapped 	// address of structure for data 
       );
    
    BOOL WriteFile(
    
        HANDLE hFile,	// handle to file to write to 
        LPCVOID lpBuffer,	// pointer to data to write to file 
        DWORD nNumberOfBytesToWrite,	// number of bytes to write 
        LPDWORD lpNumberOfBytesWritten,	// pointer to number of bytes written 
        LPOVERLAPPED lpOverlapped 	// pointer to structure needed for overlapped I/O
       );
    
    
     
    2 people like this.
  11. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    человек спрашивал конкретно за запись и чтение в посредством делфи а не апи, соответственно ответ вышел для конкретно его вопроса. если бы он не мог с апи разобраться то я бы исправил код на апи =)
     
    2 people like this.
  12. /Boom\

    /Boom\ Elder - Старейшина

    Joined:
    14 Feb 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    как сделать чтоб логин: пасс брались с memo или listbox (емайлы)
     
  13. qPhoenix

    qPhoenix Banned

    Joined:
    15 Dec 2005
    Messages:
    87
    Likes Received:
    50
    Reputations:
    8
    :eek:
    Code:
    var s:string;
        n:integer;
    begin
     n:=123;
     s:=Memo1.Lines.Strings[n];
     s:=ListBox1.Items.Strings[n];
    end;
     
  14. /Boom\

    /Boom\ Elder - Старейшина

    Joined:
    14 Feb 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    это такого вида будет login:password?
    idsmtp1.Username:=
    idsmtp1.Password:=
    как сюда этот код вставить.
     
    #1714 /Boom\, 12 Jun 2008
    Last edited: 12 Jun 2008
  15. qPhoenix

    qPhoenix Banned

    Joined:
    15 Dec 2005
    Messages:
    87
    Likes Received:
    50
    Reputations:
    8
    Code:
    var s:string;
        n:integer;
    begin
     n:=123;
     s:=Memo1.Lines.Strings[n];
     s:=ListBox1.Items.Strings[n];
    
     idsmtp1.Username:=copy(s,1,pos(':',s)-1);
     delete(s,1,pos(':',s));
     idsmtp1.Password:=s;
    
    end;
    
     
  16. 0verbreaK

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

    Joined:
    30 Apr 2008
    Messages:
    318
    Likes Received:
    42
    Reputations:
    -3
    Также можно юзать TStringList

    Code:
    var
      List: TStringList;
    begin
      List:=TStringList.Create;
      List.LoadFromFile('accounts.txt');
     
  17. /Boom\

    /Boom\ Elder - Старейшина

    Joined:
    14 Feb 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    n=123; что это ?
     
  18. Nick_Rimer

    Nick_Rimer New Member

    Joined:
    12 May 2008
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Открытие ярлыка через Delphi

    суть такова: нужно программно открыть ярлык нажатием на кнопочку. Теперь подробнее:

    Путь к ярлыку: C:\Program Files\Borland\Delphi7\Projects\A
    Содержимое: файл A.rc, файл brcc32.exe и файл brcc32.exe.lnk

    В ярлыке все нужное уже сделано. При его запуске вручную двумя кликами файл A.rc компилируется, и получается ресурс A.res

    То же самое необходимо теперь провернуть при помощи Delphi. Сделать такую строку:

    Code:
    ShellExecute(Handle, 'open', 'brcc32.exe', nil, s, SW_RESTORE);
    можно. Работает, но смысл? Его нет..

    А такая строка:

    Code:
    ShellExecute(Handle, 'open', 'brcc32.exe.lnk', nil, s, SW_RESTORE);
    также никакого смысла не несет, потому что ярлык не запускается, следовательно ресурс не компилируется!!

    При попытке:

    Code:
    case ShellExecute(Handle, 'open', 'brcc32.exe.lnk', nil, s, SW_RESTORE) of
    2: ShowMessage('wrong');
    end;
    вылезает то самое сообщение 'wrong'..

    кстати, s - это путь к папке типа PAnsiChar

    Как же мне сделать так, чтобы я смог провернуть необходимую мне операцию??? Помогите, пожалуйста, очень прошу.. уже исчерпал все, что знал.. А надо!! Мне это строить и жить помогает!
     
  19. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    дабавь в раздел uses
    Code:
    uses
      ShellAPI;
    юзай так
    Code:
    ShellExecute(0, 'open' ,PChar(cmd), nil, nil, SW_SHOWNORMAL);
    где cmd это имя файла который надо открыть.
     
    #1719 t04, 12 Jun 2008
    Last edited: 12 Jun 2008
  20. Nick_Rimer

    Nick_Rimer New Member

    Joined:
    12 May 2008
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    для t04:

    ну и что ты мне написал?.. я и так знаю, как юзается ShellExecute (я же это вполне подробно описал), и что нужно подкдлючить в uses. Программа ошибок не выдает, только вот brcc32.exe запустить я могу, а brcc32.exe.lnk - нет, а НАДО!!!
     
Thread Status:
Not open for further replies.