Dateipfad (Programmieren)

Dateipfad (Programmieren)

Also ich habe (mal wieder) ein Problem in VB.
Ich habe jetzt ein Programm erstellt bei dem im Hintergrund Musik laufen soll die auf einer CD ist da aber jetzt jeder ein anderes CD-Laufwerk hat (D;C;was weis ich was) Möchte ich jetzt machen das das Programm die Musik aus dem richtigen Laufwerk nimmt. Also angenommen aus D und wenn D nicht da ist soll es auf C schauen und wenn C nich da ist auf G und das dann so lange bis es es gefunden hat. Ich hoffe ihr wisst was ich meine.
Danke
Ich kenne VB nicht, aber in vielen Sprachen gibt es Befehle, um CD-Musik abzuspielen. Du müsstest also nicht mal ermitteln, welchen Buchstaben das CD-Laufwerk hat.

Wenn es sowas nicht gibt, dann müsstest Du eben für jedes Laufwerk nacheinander testen, ob sich die Datei öffnen läßt. Falls nicht, ist es offenbar nicht das CD-Laufwerk.

Einfacher wäre es, wenn die Musik auf Festplatte kopiert würde.
Ja aber es geht ja darum das die Musik auf der gleichen CD drauf ist wie das Programm. Weil wenn ich die von einer Festplatte aus starten würde, hat die ja jeder der das Programm bekommen hat, die Musik in einem anderen Ordner. Und deshalb möchte ich das die von der CD aus einem bestimmten Ordner genommen wird. Und jetzt fehlt mir nur der Befehl dazu.
@NEO23:

Falls sich Programm und Musik auf der CD befinden, dann ist die Sache recht einfach.

Zunächst mal eine kleine Funktion, die uns bedarfsweise den Backslash ergänzt. Dis ist nützlich, da im Root G:\ der Backslash vorhanden ist, im Unterverzeichnis aber nicht G:\Musik

Dazu legst Du am Besten ein neues Modul an und kopierst diese Funktion dort rein:

Sub AddSep(byval nPath as String) as String
If nPath="" then exit Function
If Right$(nPath, 1) <> "\" then nPath = nPath + "\"
AddSep=nPath
End Sub

Im Allgemeinteil des neuen Moduls definierst Du nun die Variable für den Pfad:

Public CDPath as String

Im Form_Load der Startform (oder Sub Main) kannst Du nun den aktuellen Pfad Deiner Applikation auslesen:

CDPath = App.Path 'Liefert z.B. G:\Musik

Nehmen wir nun an die Musik befände sich auf der
CD im Verzeichnis G:\Musik\GemaFrei und Du möchtest daraus die Datei SCHNULLI.MP3 abspielen:

CPath = Addsep(App.Path) + "GemaFrei\SCHNULLI.MP3"

Lustiger wäre es, das Prog liegt unter G:\Tools und die Musik immer noch im obigen Verzeichnis.

CDPath = Left$(App.Path, 2) 'Laufwerk holen
CDPath = CDPath + "\MUSIK\GemaFrei\SCHNULLI.MP3"

Ich hoffe, das hilft Dir weiter... ;o)
Ich bin Zu blöd (TippEx)

Function AddSep(byval nPath as String) as String
If nPath="" then exit Function
If Right$(nPath, 1) <> "\" then nPath = nPath + "\"
AddSep=nPath
End Function

Ist aber auch zu lange her.
ich progge net mit vb aber mit nem andren basic, aber kann man net das programm einfach auf den stammverzeichnis der cd machen und die jukke dann in nen unterordner, den man dann einfach mit etwas wie lademusik "/musik/stück1.mp3" öffnet??? oder geht das bei vb net???
Im Prinzip schon ;o) Dumm ist nur, daß Windoof nicht immer zwingend Arbeits- und Installationsverzeichnis gleichsetzt (siehe auch ShortCut-Erstellung) und daß manchmal (oft nach Office) alles etwas 'durcheinandergeht'. Wie gesagt, es geht in 99% der Fälle - aber sauber ist es mit relativen Pfaden nicht unbedingt. Was für ein Basic hast Du denn? Der Anwendungspfad sollte sich eigentlich immer auslesen lassen...
also wenn du das spiel nur von cd betreibst, hat wohl jedes basic einen befehl, der den standort der exe ausgibt und von dort einfach in den ordner der musik geht und da (wie ich hoffe) die musik wohl immer den gleichen namen hat, muss man dann diese wie oben beschrieben abspielen.
Ok danke ihr habt mir echt geholfen.
funzt es auch ???
Logge dich ein um einen Beitrag zu schreiben.