![]() |
Pfad zur Datei aus URL extrahieren
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 |
AW: Pfad zur Datei aus URL extrahieren
ist .url nicht nur ne text datei?
also nach "url=" suchen, und den rest dahinter nehmen. vielleicht als ini datei mit key url? |
AW: Pfad zur Datei aus URL extrahieren
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); |
AW: Pfad zur Datei aus URL extrahieren
Ich würde es vielleicht mit einer StringListe machen
Delphi-Quellcode:
Optmieren mit Zwischenvariablen usw kann jeder selber.
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; |
AW: Pfad zur Datei aus URL extrahieren
Zitat:
Mit kleiner Änderung geht es. (Muss nur noch das Caption ändern ist aber kein Problem)
Delphi-Quellcode:
Ich hätte jetzt meine riesen Unit (7KB) eingebunden damit wäre es auch gegangen da hier schon alles vorbereitet war. (Siehe OTTB uFileRelated)
if Extension = '.url' then
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; So geht es aber schneller. ;) gruss |
AW: Pfad zur Datei aus URL extrahieren
Ich würde zusätzlich noch auf
Delphi-Quellcode:
prüfen, denn sonst gibt das eine hässliche Fehlermeldung bzw einen unnötigen Eintrag im Log falls es einen gibt.
FileExists
|
AW: Pfad zur Datei aus URL extrahieren
Zitat:
Wenn die Datei auf dem Server nicht mehr existiert wird sie nicht abgespielt im weiteren verlauf. Bei lokalen Dateien gebe ich dir recht! gruss |
AW: Pfad zur Datei aus URL extrahieren
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
Delphi-Quellcode:
(wenn/da es nur das eine "url" in dieser einen Gruppe gibt).
SL.NameValueSeparator := '='; SL.Values['url'] = dieURL;
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. |
AW: Pfad zur Datei aus URL extrahieren
EWeiss, lösch meinen Code am besten. Der scheint ja absoluter Mist zu sein :roll:
|
AW: Pfad zur Datei aus URL extrahieren
Zitat:
Meine Videos laufen! ![]() Zitat:
Das Sample von @DieDolly ist dafür vollkommen ausreichend. Zitat:
Und hier ein Sample!
Delphi-Quellcode:
Aber wie gesagt ich will meine TWebShortCut Classe dafür nicht einbinden.
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; gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 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 by Thomas Breitkreuz