Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Brauche Idee wie ich URL unterscheiden soll? (https://www.delphipraxis.net/130854-brauche-idee-wie-ich-url-unterscheiden-soll.html)

AlexII 14. Mär 2009 12:19


Brauche Idee wie ich URL unterscheiden soll?
 
Hallo,

für ein StreamerProgramm muss ich unterscheiden können, ob die URL eine Playliste von Microsoft ist, z.B. mit der Erweiterung .asx vom Protokoll mms://, oder das eine Playliste für WinAmp ist, also .pls, m3u usw...

Hab irgendwie keine Idee wie ich das lösen soll. Dachte schon die letzten drei Zeichen auslesen, aber es gibt URLs mit einer Zahl am Ende und das macht mit nen Strich durch die Rechnung. :gruebel:

bigben37 14. Mär 2009 12:24

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Du kannst mit Delphi-Referenz durchsuchenpos() in einem string suchen.

mjustin 14. Mär 2009 12:25

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Zitat:

Zitat von AlexII
Hallo,

für ein StreamerProgramm muss ich unterscheiden können, ob die URL eine Playliste von Microsoft ist mit der Erweiterung .asx oder auch das Protokoll mms:// hat oder das eine Playliste für WinAmp ist, also .pls, m3u usw...

Hab irgendwie keine Idee wie ich das lösen soll. Dachte schon die letzten drei Zeichen auslesen, aber es gibt URLs mit einer Zahl am Ende und das macht mit nen Strich durch die Rechnung. :gruebel:

Bei den Indy Sourcen ist auch eine URI Klasse (TIdURI in IdURI.pas) enthalten. Mit dieser kann eine URL standardgemäß in ihre Teile zerlegt werden. Der 'Document' Teil der zerlegten URL müsste dann der Dateiname sein.

Viele Grüße,

AlexII 14. Mär 2009 12:26

Re: Brauche Idee wie ich URL unterscheiden soll?
 
:gruebel:

jaenicke 14. Mär 2009 12:28

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Zitat:

Zitat von AlexII
Kann man das so machen? Erst die ersten drei Zeichen prüfen, was das für ein Protokoll ist und dann hinten die Erweiterung?
Wow, das kann hinhauen, oder?

Ja, wie sonst? So hattest du das doch eigentlich selbst auch fast geschrieben.

Und in den Fällen, in denen es sich an der URI selbst nicht unterscheiden lässt, musst du wohl über eine Analyse des Inhalts an das Problem herangehen.
Dabei kommt es dann ganz auf die unterstützten Formate an, inwieweit das einfach möglich ist.

AlexII 14. Mär 2009 12:31

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Ach du meine Güte, hier muss man ja ein Informatik Professor sein... :pale:

Matze 14. Mär 2009 12:33

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Wieso denn?
Bemühe dich mal etwas und schaue dir Beispiele zu Delphi-Referenz durchsuchenPos und Delphi-Referenz durchsuchenCopy an. Damit erhälst du dann das Protokoll. Delphi-Referenz durchsuchenExtractFileEx müsste dir auch bei einer URL die Dateiendung liefern.

Also knie dich mal etwas dahinter!

Grüße, Matze

AlexII 14. Mär 2009 12:40

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Hab z.B. so ne URL: http://www1.neti.tv/xxx/asxgen.aspx?id=35

Wie soll ich daraus entnehmen, dass da hinter irgendwo eine .asx Liste befindet? :gruebel: Nach nem TeilString asx durchsuchen? Hm... und wenn es eine URL vorkommt, dass genau so ist, aber halt ohne TeilString asx? :gruebel:

jaenicke 14. Mär 2009 12:42

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Das Fragezeichen ist das Trennzeichen zu den Parametern. Eine URL enthält also davor im Allgemeinen eine Dateiendung, es sei denn es handelt sich um ein Verzeichnis, das dann umgeleitet wird.

Jedenfalls kannst du in diesem Fall nach dem Fragezeichen suchen, und auf den teil davor ExtractFileExt anwenden.

Und so musst du dir eben die möglichen Fälle alle anschauen.

Matze 14. Mär 2009 12:43

Re: Brauche Idee wie ich URL unterscheiden soll?
 
Mit Delphi-Referenz durchsuchenPos nach dem Fragezeichen suchen, das davor per Delphi-Referenz durchsuchenCopy trennen und an Delphi-Referenz durchsuchenExtractFileEx übergeben.

Edit: zu langsam.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 Uhr.
Seite 1 von 3  1 23      

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