MovieStarter

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

MovieStarter

Beitrag 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
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

re:

Beitrag 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.
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag 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
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

RunProgram("c:\vlc.exe", "musikdatei.mp3")
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag von Zerosurf »

Code: Alles auswählen

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

und wohin damit?
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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.
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag 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)
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag 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:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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?
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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 ;)
Antworten