Seite 1 von 4

MovieStarter

Verfasst: 29.08.2007 14:26
von Zerosurf
Dies sollte ein Programm werden, was auf einer CD/DVD im root-Verzeichnis liegt und alle Mediafiles (Filme) in einem bestimmten Ordner und dessen Unterordner ausliest und als schönes Menü darstellt.

Diese Auswahl sollte nach Namen/Datum/Größe/Dateiart/usw. aufsteigend bzw. absteigend sortierbar sein.

Bei Anwahl eines Punktes sollte dann der mit auf CD/DVD liegende Mediaplayer VLC diese Datei abspielen.


So - wo starte ich da jetzt am besten?
Ich hab schon lange nichts mehr programmiert und so bitte ich Euch mir ein wenig auf die Sprünge zu helfen.

lg. Zerosurf

re:

Verfasst: 29.08.2007 14:40
von smateja
evtl. bei den FIlmen selbst G* - wenn mal 2-3 Filme hast - kannste ja dann in purebasic den ordnerauslesen und schauen wieviele datein du hast - mit der zahl kannste dann ja schon mal ne kleine inhaltsstruktur anlegen.

Verfasst: 29.08.2007 15:45
von Zerosurf
Ok - ich hab jetzt dieses Script gefunden:
AND51 hat geschrieben:So, hier. Exklusiv für dich:

Code: Alles auswählen

EnableExplicit

Procedure sucheMusikdateien(pfad.s, Liste.s(), typ.s="mp3,wma,wav")
	PathAddBackslash_(@pfad) ; Hängt Backslash an, falls nötig
	Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
	If dir
		While NextDirectoryEntry(dir)
			If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
				For n=1 To CountString(typ, ",")+1
					If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
						AddElement(Liste())
						Liste()=pfad+DirectoryEntryName(dir)
						Break
					EndIf
				Next
				Continue
			ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
				sucheMusikdateien(pfad+DirectoryEntryName(dir), Liste(), typ)
			EndIf
		Wend
		FinishDirectory(dir)
	EndIf
EndProcedure


NewList MeineMucke.s()
sucheMusikdateien("C:", MeineMucke())



Debug StrQ(CountList(MeineMucke()))+" Dateien gefunden:"

ForEach MeineMucke()
	Debug MeineMucke()
Next
Übergib der Prozedur einfach eine LinkedList. Der Parameter 'typ' muss immer klein geschrieben werden und durch Komma getrennt!
Aber wie schaffe ich es jetzt, daß ich die einzelnen Einträge an den VLC-Player übergebe?

Über die Kommandozeile von Windows geht das Starten für eine Datei ganz gut:

C:\> vlc.exe mediadatei.mp3

Bitte um Unterstützung!

mfg. Zerosurf

Verfasst: 29.08.2007 15:47
von NicTheQuick
RunProgram("c:\vlc.exe", "musikdatei.mp3")

Verfasst: 29.08.2007 15:53
von Zerosurf

Code: Alles auswählen

RunProgram("c:\vlc.exe", "MeineMucke()")
so, oder?

und wohin damit?

Verfasst: 29.08.2007 16:05
von NicTheQuick
Nein, so wird das nicht funktionieren.

So müsste es funktionieren:

Code: Alles auswählen

NewList MeineMucke.s()

Define s.s = ""
ForEach MeineMucke()
  s + Chr(34) + MeineMucke() + Chr(34) + " "
Next

RunProgram("c:\vlc.exe", s)
Zerosurf hat geschrieben:und wohin damit?
Versteh ich nicht.

Verfasst: 29.08.2007 16:09
von Zerosurf
Diesen Code:

Code: Alles auswählen

NewList MeineMucke.s()
sucheMusikdateien("C:\", MeineMucke())

einfach gegen diesen austauschen, oder?

Code: Alles auswählen

NewList MeineMucke.s()

Define s.s = ""
ForEach MeineMucke()
  s + Chr(34) + MeineMucke() + Chr(34) + " "
Next

RunProgram("c:\vlc.exe", s)

Verfasst: 29.08.2007 16:22
von gnasen
ich will ja wirklich nichts sagen (bin selber ja auch noch anfänger), aber ich weiss nicht ob das der richtige Weg ist.

Ich verbringe einen großteil mit dem Suchen im Forum und in der Hilfe und versuche mit den Ergebnissen meinen Code selber zu schreiben. Aber einfach alles vorgekaut aneinander heften ist glaub ich nicht sehr hilfreich.

Ich würd versuchen mehr die Sachen selber zu erlernen, nur nen Tipp von mir (nicht bös gemeint das alles) :allright:

Verfasst: 29.08.2007 16:22
von NicTheQuick
:? Nein...

Weißt du überhaupt, was der Code macht? :|

Bevor du deinen VLC-Player aufrufst, solltest du natürlich die Dateien in die
Liste machen. Wie soll das funktionieren, wenn du die 'sucheMusikdateien()'-
Funktion nicht aufrufst?

Verfasst: 29.08.2007 16:41
von a14xerus
@gnasen: Da haste vollkommen recht.
@Zerosurf: ich denke mal du hast keine Ahnung vom coden, also arbeite dich mal erst ein wenig ein oder versuche wenigstens den Code zu verstehen ;)