AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Pfad zur Datei aus URL extrahieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pfad zur Datei aus URL extrahieren

Ein Thema von EWeiss · begonnen am 2. Okt 2018 · letzter Beitrag vom 2. Okt 2018
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 09:26
Hat jemand ein Sample wie ich aus einer LNK Datei *.url den Pfad zur Video Datei extrahieren kann?
Einfache Funktion sollte reichen.

Hab mit Internet noch nicht viel gemacht.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 09:43
ist .url nicht nur ne text datei?
also nach "url=" suchen, und den rest dahinter nehmen.
vielleicht als ini datei mit key url?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 09:45
Quelltext hab' ich nicht parat, aber:

http:// bzw. https:// durch 'nen Laufwerksbuchstaben ersetzen.
Dann mit ExtractFilePath den Pfad entnehmen, ExtractFileName gibt den Dateinamen.

Ungefähr sowas:
Delphi-Quellcode:
url := AnsiReplaceText(url,'http://','c:\');
url := AnsiReplaceText(url,'https://','c:\');
// ggfls. / nach \ übersetzen.
url := AnsiReplaceText(url,'/','\');
Pfad := ExtractFilePath(url);
Datei := ExtractFileName(url);
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#4

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 09:49
Ich würde es vielleicht mit einer StringListe machen

Delphi-Quellcode:
if FileExists(url datei) then
begin
 sl := TStringList.Create;
 try
  sl.LoadFromFile(url datei);

  if sl.Count > 0
   begin
    for i := 0 to sl.Count - 1 do
     begin
      if Pos('url=', sl.Strings[i]) > -1 then
       begin
        showmessage( Copy(sl.Strings[i], Pos('=', sl.Strings[i]) + 1, Length(sl.Strings[i])) );
       end;
     end;
   end;
 finally
  sl.Free;
 end;
end;
Optmieren mit Zwischenvariablen usw kann jeder selber.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 10:07
Ich würde es vielleicht mit einer StringListe machen

Delphi-Quellcode:
if FileExists(url datei) then
begin
 sl := TStringList.Create;
 try
  sl.LoadFromFile(url datei);

  if sl.Count > 0
   begin
    for i := 0 to sl.Count - 1 do
     begin
      if Pos('url=', sl.Strings[i]) > -1 then
       begin
        showmessage( Copy(sl.Strings[i], Pos('=', sl.Strings[i]) + 1, Length(sl.Strings[i])) );
       end;
     end;
   end;
 finally
  sl.Free;
 end;
end;
Danke
Mit kleiner Änderung geht es. (Muss nur noch das Caption ändern ist aber kein Problem)
Delphi-Quellcode:
            if Extension = '.urlthen
            begin
              sl := TStringList.Create;
              try
                sl.LoadFromFile(FileName);

                if sl.Count > 0 then
                begin
                  for IntI := 0 to sl.Count - 1 do
                  begin
                   if InStr(lowercase(sl.Strings[IntI]), 'url=') = 1 then
                   begin
                   FileName := Copy(sl.Strings[IntI], Pos('=', sl.Strings[IntI]) + 1,
                     Length(sl.Strings[IntI]));
                     break;
                   end;
                  end;
                end;
              finally
                sl.Free;
              end;
            end;
Ich hätte jetzt meine riesen Unit (7KB) eingebunden damit wäre es auch gegangen da hier schon alles vorbereitet war. (Siehe OTTB uFileRelated)
So geht es aber schneller.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:53 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 10:36
Ich würde zusätzlich noch auf FileExists prüfen, denn sonst gibt das eine hässliche Fehlermeldung bzw einen unnötigen Eintrag im Log falls es einen gibt.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 10:43
Ich würde zusätzlich noch auf FileExists prüfen, denn sonst gibt das eine hässliche Fehlermeldung bzw einen unnötigen Eintrag im Log falls es einen gibt.
Es ist ja eine Verknüpfung..
Wenn die Datei auf dem Server nicht mehr existiert wird sie nicht abgespielt im weiteren verlauf.
Bei lokalen Dateien gebe ich dir recht!

gruss

Geändert von EWeiss (11. Jul 2019 um 16:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#8

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 10:55
Erstmal, das ist eine INI und keine StringListe, also warum nicht wie eine INI behandeln?
Und selbst wenn als StringList, dann kann man sich das manuelle Durchsuchen sparen, denn SL.NameValueSeparator := '='; SL.Values['url'] = dieURL; (wenn/da es nur das eine "url" in dieser einen Gruppe gibt).

Und es sollte eigentlich auch eine WinAPI für den Zugriff geben (es gibt auch binäre Formate, wie z.B. .lnk), aber mir fällt grade nicht ein wo diese API sich versteckt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Okt 2018 um 10:57 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#9

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 11:03
EWeiss, lösch meinen Code am besten. Der scheint ja absoluter Mist zu sein
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Pfad zur Datei aus URL extrahieren

  Alt 2. Okt 2018, 11:08
EWeiss, lösch meinen Code am besten. Der scheint ja absoluter Mist zu sein
Warum funktioniert einwandfrei wenn SL als TStringList definiert ist.
Meine Videos laufen! UHD direkt aus dem Internet ohne zu speichern.

Zitat:
es gibt auch binäre Formate, wie z.B. .lnk
Habe ich schon fertig *.lnk NUR das will ich nicht zu viel Code und absolut nicht nötig.
Das Sample von @DieDolly ist dafür vollkommen ausreichend.

Zitat:
aber mir fällt grade nicht ein wo diese API sich versteckt
ShellApi

Und hier ein Sample!
Delphi-Quellcode:
procedure TWebShortCut.LoadInternetShortCut;
// Loads information for internet shortcut (*.URL) from FileName and Location.
  var
    inifile: TIniFile;
    psfi: TSHFileInfo;
  begin
    ClearValues;
    iniFile := TIniFile.Create(GetLocationFolder);
    try
      fURL := iniFile.ReadString('InternetShortcut', 'URL', '');
      fHotKey := iniFile.ReadInteger('InternetShortcut', 'Hotkey', 0);
      HotKeyToShortCut(FHotKey, FHotKeyCtrl);
      fIconPath := iniFile.ReadString('InternetShortcut', 'IconFile', '');
      fIconIndex := iniFile.ReadInteger('InternetShortcut', 'IconIndex', 0);
    finally
      inifile.free;
    end;
    // load icon into TIcon if one is available.
    if FIconPath = 'then
      begin
        SHGetFileInfo(PChar(fURL), 0, psfi, sizeof(psfi), SHGFI_ICON);
        FIcon.Handle := psfi.hIcon;
      end
    else
      FIcon.Handle := ExtractIcon(hInstance, PChar(FIconPath), FIconIndex);
  end;
Aber wie gesagt ich will meine TWebShortCut Classe dafür nicht einbinden.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:53 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz