Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ftp url split'en und dann die datei downloaden (https://www.delphipraxis.net/21363-ftp-url-spliten-und-dann-die-datei-downloaden.html)

cbm 1. Mai 2004 17:56


ftp url split'en und dann die datei downloaden
 
Hi, ich möchte ein programm schreiben beidem ich eine list mit ftp-url's eingebe (in eine textbox) und diese soll mein programm dann nacheinander downloaden, also als erstes müsste ich dannmal die zeilen voneinander trennen, jede zeile ist so aufgebaut:

ftp://user:pass@host.de:21/verzeichnis/datei1.exe
ftp://user:pass@host.de:21/verzeichnis/datei2.exe
...

ich habe vor das ganze mit IdFTP zu programmieren, aber erstmal müsste ich dann jede zeile vor dem download auseinander nehmen und tftp sagen was was ist... das problem ist dass ich nicht weiss wie ich das lösen kann... hat jm. n'e idee, vorschläge , tipps, oder beispiele ? wäre nett wenn jm helfen könnte danke :) (in visual basic wüsste ich wies geht, doch da gibts leider keine guten ftp-controls :( )

:duck:

toms 1. Mai 2004 18:01

Re: ftp url split'en und dann die datei downloaden
 
Hi,

Wenn IE installiert ist (ist ja meistens der Fall), kannst du auf die
InternetCrackUrl Fuktionen der WinInet.dll zurückgreifen.
Bei Google suchenDelphi InternetCrackUrl aufteilen

cbm 1. Mai 2004 18:11

Re: ftp url split'en und dann die datei downloaden
 
sorry bin blutiger anfänger und hab jetzt zum test folgendes geschrieben:


Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,wininet, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  aURLC: TURLComponents;
const
  TEST_URL = 'ftp://user:pass@host:port/dir/file.exe';
begin
 FillChar(aURLC, SizeOf(TURLComponents), 0);
  with aURLC do
  begin
    lpszScheme := nil;
    dwSchemeLength := INTERNET_MAX_SCHEME_LENGTH;
    lpszHostName := nil;
    dwHostNameLength := INTERNET_MAX_HOST_NAME_LENGTH;
    lpszUserName := nil;
    dwUserNameLength := INTERNET_MAX_USER_NAME_LENGTH;
    lpszPassword := nil;
    dwPasswordLength := INTERNET_MAX_PASSWORD_LENGTH;
    lpszUrlPath := nil;
    dwUrlPathLength := INTERNET_MAX_PATH_LENGTH;
    lpszExtraInfo := nil;
    dwExtraInfoLength := INTERNET_MAX_PATH_LENGTH;
    dwStructSize := SizeOf(aURLC);
  end;
  if InternetCrackUrl(PChar(TEST_URL), Length(TEST_URL), 0, aURLC) then
  begin
    ShowMessage(aURLC.lpszUrlPath);
  end;

end;

end.
und da InternetCrackUrl(PChar(TEST_URL), Length(TEST_URL), 0, aURLC) nicht true ist wird auch nix ausgegeben ... jetzt ist die frage... was mach ich falsch ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz