Интересные вопросы по Delphi и не только

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by CeHoKoC, 9 Apr 2009.

  1. CeHoKoC

    CeHoKoC New Member

    Joined:
    8 Feb 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Уважаемые знатоки, у меня накопилось немного совсем не глупых вопросов.
    За понятный ответ хотябы на один из них не пожелею +1

    1. Как в Delphi (7) пользуясь методом загрузки файлов из Web, который начинается
    с “InternetOpen” быть уверенным, что загружаемый файл будет передоваться как
    бинарный?
    2. Как передать Web серверу запрос, содержащий моё имя браузера и ссылку страницы, с которой я пришел? (в Delphi 7)
    3. Есть ли специальная функция (например, ассемблерная) для преобразования десятичного числа в двоичное с сохранением в строку? (в Delphi 7) Не подумайте, что я не знаю как это сделать, но я бы лучше использовал специальную быструю функцию, чем циклом делил на 2…
    4. Как преобразовать (в Delphi 7) тип данных в те байты, которые он из себя представляет? Например Char можно просто преобразовать в Byte(так: Byte(‘f’);) и обратно, а как, например преобразовать Cardinal или Integer в массив байт? Причем мне не нужно делать так: S:=IntToStr(SomeInt); for SomeInt:=1 to Length(S) do ByteArray[SomeInt]:=Byte(S[SomeInt]);
    5. Уж извените, не занимался раньше чтением памяти процессов, но разбирал прогу с исходником AntiMiner и она легко читала память процесса минера, а вот когда я захотел просканировать память WarCraft 3 : The Frozen Throne то не изменяя кода, кроме имени процесса, получал ошибку… Вобщем дайте урыль или просто напешите как прочитать память процесса побайтно(ну или блоками по 128)?
    6. Если кто пользуется uCoZ подскажите плз как надо именовать файлы, чтобы при загрузке их через FTP не выдавалась ошибка? А то файл с именем «Some File v.1.0.5.zip» не грузится, например, хотя для FTP, вроде, все символы нормальны…
    7. Если у меня есть свой сайт на uCoZ могу ли я как-нибудь сделать программу, чтобы она могла сохранять данные на сервер, для того чтобы другие программы могли по этим данным получать информацию? Например, я подумал уже про FTP, но он не подойдет, так как нужно будет вбить в программу свой FTP-логин и FTP-пароль, а т.к. на укоз FTP-логины с разными правами не поддерживаются (вроде?), то, конечно, давать в общее пользование эти данные не стоит, т.к. удалят их блин…


    Большое спасибо за внимание =)
     
    #1 CeHoKoC, 9 Apr 2009
    Last edited: 9 Apr 2009
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    /me плакает от интерестных вопросов этих
    1. Открой Delphi World или заюзай инет. там 1000 статй по этому.
    2. смотри предыдущий пункт. Там типа команжа InternetOpenRequest или както так
    3. функции нет, но кто тебе не дает её самому написать. Читай алгоритм перевода числа в BIN (тупо дели на 2 всё время)
    4. юзай адресацию памяти типа byte(@твояпеременаня)^
    5. Должны быть права отладчика чтобы читать. Получаешь прова отдачика. Открываешь процесс. а потмо ReadProcessMemory главное при открытии указывать права типа запить, чтение, завершение итд итп
    6. Это тебе в другой раздел. Хотя попробуй убрать пробелы
    7. юзай гейтовую систему. если Ucoz поддерживает php
     
  3. Vitaliy-55

    Vitaliy-55 New Member

    Joined:
    20 Mar 2009
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток!!!
    У меня такая проблема, необходимо через Wininet настроить подключение от клиента к серверу (используя аутентификацию) и дальнейшую загрузку файлов с сервера.
    Делаю так:
    Code:
    function GetInetFile
    (const fileURL, FileName: String): boolean;
    const BufferSize = 1024;
    var
      hSession, hURL: HInternet;
      Buffer: array[1..BufferSize] of Byte;
      BufferLen,mnb: DWORD;
      f: File;
      sAppName: string;
    begin
      Result:=False;
      sAppName := ExtractFileName(Application.ExeName);
      hSession := InternetOpen(PChar(sAppName),INTERNET_OPEN_TYPE_PROXY,PIInfo^.lpszProxy,nil,0);
      Dispose(PIInfo);
      try
        hURL := InternetOpenURL(hSession, PChar(fileURL), nil,0,0,0);
        try
          AssignFile(f, FileName);
          Rewrite(f,1);
        repeat
        InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen)
      until BufferLen = 0;
      CloseFile(f);
      Result:=True;
      finally
        InternetCloseHandle(hURL)
      end
      finally
        InternetCloseHandle(hSession)
      end
    end;
    
    procedure TForm1.ConnectButtonClick(Sender: TObject);
    var
      i,k:integer;
      old_date,ftp_name,ftp_name1,save_name:string;
    Flags, TargetFrameName, PostData, Headers: OleVariant;
    FileOnNet, LocalFileName: string;
    begin
    FileOnNet:='http://trulala.ru/lala/123.txt';
    LocalFileName:='123.txt';
    if GetInetFile(FileOnNet,LocalFileName)=True then
      ShowMessage('Файл загружен')
    else
      ShowMessage('Ошибка загрузки файла')
    
    Все работает нормально при подключенном Траффик испекторе (программу пишу на работе), когда его выключаешь, программа записывает в файл строки с содержимым HTML-кода, вроде того, что требуется аутентификация на сервере.

    Помогите пожалуйста.
    Заранее благодарен.
     
  4. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ТАк вроде без включенного клиенсткого приложения сервер трафинспектора не пропускает траф
     
  5. Vitaliy-55

    Vitaliy-55 New Member

    Joined:
    20 Mar 2009
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток!
    Подскахите пожалуйста, как с помощю idHTTP и idFTP скачать файл с прокси сервера, используя аутентификацию. Срочно нужно. Буду очень признателен.

    Заранее благодарен!!!