Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Datenträger nach MP3s durchsuchen - Inhalt inkl. MusikTitel, Dauer, Interpret, Album, Jahr, kbits, Genre in eine .mdb schreiben

Anleitung Entwicklung VB for Applications

Mitglied: Edi.Pfisterer

Edi.Pfisterer (Level 2) - Jetzt verbinden

10.04.2010, aktualisiert 12.04.2010, 6754 Aufrufe, 1 Kommentar, 1 Danke

In Anlehnung an die Anleitung der letzten Woche nun eine Abwandlung für .mdb (damit man später per asp(x) eine Website mit Suchfunktion basteln kann....

Das Vorwort nennt schon alle relevanten Ideen...
Erklärungen zur Veränderungen finden sich in dieser Anleitung...

Dieser Code stellt auch nicht der letzten Weisheit Schluss dar, sondern soll hauptsächlich dazu dienen, Teile oder den gesamten Code als Grundlage für eigene Projekte zu verwenden...

Daher hier einfach nur der Code, der - unverändert - nur für XP funktioniert...:

Welches Ergebnis erhält man durch diesen Code?
Es wird ein Gesamtes Laufwerk bzw. bestimmter Ordner inkl. aller Unterordner auf Dateien durchsucht, die mit Eurem Musikplayer (in meinem Fall Winamp) standardmäßig geöffnet werden.
(m3u - Dateien werden von der Suche ausgespart).
Dann wird eine Datenbank erstellt, die 2 Tabellen enthält.
In der 1. Tabelle befinden sich die Ordnernamen (da ich meine Alben jeweils in eigene Unterordner gespeichert habe)
In der 2. Tabelle befinden sich alle Musiktitel inkl. Dauer, Interpret, Album, Jahr, kbits, Genre.
Zur späteren Verknüpfung der beiden Tabellen haben die jeweiligen Titel den selben Indexwert, wie ihn der Ordner hat.
Wenn im m3-Tag das Album bzw. der Interpret fehlt, wird der Ordner ausgelesen und entsprechendes in die Tabelle eingetragen
(bei mir nennen sich alle Ordner nach folgendem Muster:
LW:\Musik\A\#Allman Brothers\cd_Allman Brothers - Idlewild South

Was ist anzupassen?
Bei Verwendung von XP: NICHTS!

Bei Verwendung von Vista / 7 folgenden Teil

id = indexwert
Titel = objFolder.GetDetailsOf(strFileName, 0)
Dauer = objFolder.GetDetailsOf(strFileName, 21)
Interpret = objFolder.GetDetailsOf(strFileName, 16)
Album = objFolder.GetDetailsOf(strFileName, 17)
Jahr = objFolder.GetDetailsOf(strFileName, 18)
bit = objFolder.GetDetailsOf(strFileName, 22)
Genre = objFolder.GetDetailsOf(strFileName, 20)

nach dieser Liste...

Ordner_in_mdb.hta

01.
<head> 
02.
<meta name="author" content="Edi Pfisterer aka urobe73_administrator.de"> 
03.
<meta name="generator" content="Ulli Meybohms HTML EDITOR"> 
04.
<title>Edis Dateiliste 2 Access</title> 
05.
<HTA:APPLICATION 
06.
SCROLL="yes" 
07.
SINGLEINSTANCE="yes" 
08.
WINDOWSTATE="normal" 
09.
10.
</head> 
11.
<script language="VBScript"> 
12.
'Const myDB = "a2000.mdb" 
13.
 
14.
Sub CreateNewMDB(FileName, Format) 
15.
  Dim Engine 
16.
  Set Engine = CreateObject("DAO.DBEngine.36") 
17.
  Engine.CreateDatabase FileName, ";LANGID=0x0409;CP=1252;COUNTRY=0", Format 
18.
End Sub 
19.
 
20.
function dbanlegen(mydb) 
21.
CreateNewMDB mydb, 64 
22.
end function 
23.
 
24.
function TabelleAnlegen(mydb) 
25.
 
26.
on Error resume next 
27.
    Set Conn = CreateObject("ADODB.Connection") 
28.
 
29.
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & myDb 
30.
 
31.
  '  conn.Execute "DROP TABLE Alben" 
32.
 
33.
    Conn.Execute ("CREATE TABLE Alben(" & _ 
34.
            "Id INTEGER      NOT NULL," & _ 
35.
            "Name   VARCHAR(255)  NOT NULL)") 
36.
 
37.
    Conn.Execute ("CREATE TABLE tbMusiktitel(" & _ 
38.
            "MusiktitelId INTEGER  ," & _ 
39.
            "Musiktitel   VARCHAR(255)  NOT NULL," & _ 
40.
            "Dauer   VARCHAR(255) ," & _ 
41.
            "Interpret   VARCHAR(255) ," & _ 
42.
            "Album   VARCHAR(255) ," & _ 
43.
            "Jahr   VARCHAR(255) ," & _ 
44.
            "kbits   VARCHAR(255) ," & _ 
45.
            "Genre  VARCHAR(255) )") 
46.
 
47.
    conn.Close 
48.
 
49.
end function 
50.
 
51.
function dbEintrag1(id,Titel,Dauer,Interpret,Album,Jahr,bit,Genre,Ordnername,mydb) 
52.
 
53.
on Error resume next 
54.
Titel = replace(Titel,"'"," ") 
55.
Interpret = replace(Interpret,"'"," ") 
56.
Album = replace(Album,"'"," ") 
57.
Genre = replace(Genre,"'"," ") 
58.
 
59.
    Set Conn = CreateObject("ADODB.Connection") 
60.
 
61.
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & myDb 
62.
    sql ="INSERT INTO [tbMusiktitel] (MusikTitelid, MusikTitel, Dauer, Interpret, Album, Jahr, kbits, Genre) VALUES (" & id & ",'" & Titel & "','" & Dauer & "','" & Interpret & "','" & Album & "','" & Jahr & "','" & bit & "','" & Genre & "')" 
63.
 
64.
   conn.Execute (sql) 
65.
 '   MsgBox sql 
66.
 
67.
    conn.Close 
68.
 
69.
end function 
70.
 
71.
function dbEintrag(id,Album,mydb) 
72.
 
73.
on Error resume next 
74.
Album = replace(Album,"'"," ") 
75.
    Set Conn = CreateObject("ADODB.Connection") 
76.
 
77.
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & myDb 
78.
    sql ="INSERT INTO [Alben] (id, Name) VALUES (" & id & ",'" & Album & "')" 
79.
 
80.
    conn.Execute (sql) 
81.
   ' MsgBox sql 
82.
 
83.
    conn.Close 
84.
 
85.
end function 
86.
 
87.
 
88.
 
89.
 
90.
 
91.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
92.
kopfzeile = 0 
93.
indexwert = 0 
94.
function meineVids(pfad,dateiname) 
95.
mydb = replace(dateiname,"csv","mdb") 
96.
        if kopfzeile = 0 then 
97.
        call dbAnlegen(mydb) 
98.
        call TabelleAnlegen(mydb) 
99.
        set logbuch1 =objFSO.opentextfile(dateiname, 2, true,0) 
100.
        logbuch1.write "Index;Ordnername;Musiktitel;Interpret;Album;Jahr;Dauer;bit;Genre" 
101.
        logbuch1.close 
102.
        kopfzeile = 1 
103.
        end if 
104.
 
105.
            If radiobutton(0).Checked Then 
106.
                showall = "ja" 
107.
            End If 
108.
            If radiobutton(1).Checked Then 
109.
                showall = "nein" 
110.
            End If 
111.
 
112.
        Set objFolder = objFSO.GetFolder(pfad) 
113.
        Set colSubfolders = objFolder.Subfolders 
114.
 
115.
        For Each objSubfolder in colSubfolders 
116.
       on Error resume next 
117.
                 ordnerzeichen = ordner_zeichen.value 
118.
                 vollername = objFSO.GetAbsolutePathName(objSubfolder) 
119.
                 indexwert = indexwert+1 
120.
                 if showAll = "ja" then 
121.
 
122.
                    ausgabe2 = indexwert & ";" & left(vollername,ordnerzeichen) & punktaln(vollername,ordnerzeichen) & vbcrlf 
123.
 
124.
                 end if 
125.
                 ausgabe1 = ausgabe2 & detail(vollername, showall, indexwert,mydb) 
126.
 
127.
                set logbuch1 =objFSO.opentextfile(dateiname, 8, true,0)  ' 8 zum anfügen 
128.
                logbuch1.write ausgabe1 
129.
                logbuch1.close 
130.
                dateinameneu = dateiname 
131.
 
132.
           call dbEintrag(indexwert, vollername,mydb) 
133.
         call meineVids(vollername,dateinameneu) 
134.
        Next 
135.
 
136.
end function 
137.
 
138.
function punktaln(ordnername, anzeigezeichen) 
139.
        anzeigezeichen = anzeigezeichen+1   'damit er checkt, dass anzeigezeichen eine zahl ist... 
140.
        if len(ordnername) >=  anzeigezeichen then 
141.
        anzeige = "... " 
142.
        end if 
143.
        punktaln = anzeige 
144.
end function 
145.
 
146.
function Detail(ordnername, lang, indexwert, mydb) 
147.
        dateitypen = split(Dateityp.value,";") 
148.
 
149.
        showAll = lang 
150.
            If urlbutton(0).Checked Then 
151.
                link = "ein" 
152.
            End If 
153.
            If urlbutton(1).Checked Then 
154.
                link = "aus" 
155.
            End If 
156.
        durchlauf = 1 
157.
 
158.
        Dim arrHeaders(34) 
159.
        Set objShell = CreateObject("Shell.Application") 
160.
        Set objFolder = objShell.Namespace(ordnername) 
161.
        For i = 0 to 33 
162.
            arrHeaders(i) = objFolder.GetDetailsOf(objFolder.Items, i) 
163.
        Next 
164.
        For Each strFileName in objFolder.Items 
165.
                ordnerzeichen = ordner_zeichen.value 
166.
                dateizeichen = datei_zeichen.value 
167.
 
168.
            for i = 0 to UBound(dateitypen) 
169.
                                if (instr(1, objFolder.GetDetailsOf(strFileName, 2), dateitypen(i), 1) >= 1) OR _ 
170.
                (instr(1, strFileName, dateitypen(i), 1) >= 1)  then 
171.
                nemmas = 1 
172.
                end if 
173.
            next 
174.
 
175.
             if nemmas = 1 then 
176.
                if durchlauf = 1 AND showAll <> "ja" then 
177.
 
178.
                        feedback = feedback & vbcrlf & indexwert & ";" & left(ordnername,ordnerzeichen) & punktaln(ordnername,ordnerzeichen) & vbcrlf 
179.
                        feedback_DVD = feedback 
180.
 
181.
                        durchlauf = 2 
182.
                end if 
183.
 
184.
                     id = indexwert 
185.
                    Titel = objFolder.GetDetailsOf(strFileName, 0) 
186.
                    Dauer = objFolder.GetDetailsOf(strFileName, 21) 
187.
                    Interpret = objFolder.GetDetailsOf(strFileName, 16) 
188.
                    Album = objFolder.GetDetailsOf(strFileName, 17) 
189.
                    Jahr = objFolder.GetDetailsOf(strFileName, 18) 
190.
                    bit = objFolder.GetDetailsOf(strFileName, 22) 
191.
                    Genre = objFolder.GetDetailsOf(strFileName, 20) 
192.
 
193.
                    if len(Album) <= 2 then 
194.
                            beginnAlbum = instr(Ordnername,"-")+1 
195.
                            Album = LTRIM(mid(Ordnername,beginnAlbum,200)) 
196.
                    end if 
197.
 
198.
                    if len(Interpret) <= 2 then 
199.
                         BeginnInterpret = instrRev(Ordnername,"\")+1 
200.
                         EndeInterpret = instr(Ordnername,"-")-1 
201.
                         Interpret = TRIM(mid(Ordnername,beginnInterpret,EndeInterpret - BeginnInterpret)) 
202.
                         Interpret = Replace(Interpret,"cd_","") 
203.
                    end if 
204.
 
205.
 
206.
                feedback2 = id & ";" & " ;" & left(Titel ,dateizeichen) _ 
207.
                    & punktaln(Titel ,dateizeichen) & "; " _ 
208.
                    & Dauer& "; " _ 
209.
                    &  Interpret & ";" &  Album & ";" _ 
210.
                    & Jahr & ";" & bit & ";" _ 
211.
                    & Genre & ";" 
212.
 
213.
                    if link = "ein" then 
214.
                    feedback3 = Chr(34) & "=hyperlink(" & Chr(34)  & Chr(34)& ordnername & "\" & Titel _ 
215.
                    & Chr(34)  & Chr(34) & ";"  & Chr(34)  & Chr(34) & "klick " &  Chr(34)  & Chr(34)& ")"  & Chr(34) 
216.
                    end if 
217.
 
218.
                    if instr(1, objFolder.GetDetailsOf(strFileName, 0),"m3u", 1) =0 then 
219.
                    feedback = feedback & feedback2 & feedback3 & vbcrlf 
220.
 
221.
 
222.
 
223.
                    call dbeintrag1(id,Titel,Dauer,Interpret,Album,Jahr,bit,Genre,Ordnername, mydb) 
224.
 
225.
                    end if 
226.
 
227.
                     if instr(1, objFolder.GetDetailsOf(strFileName, 0),"vob", 1)>=1 then feedback = feedback_DVD & "ist eine DVD" & vbcrlf 
228.
 
229.
            end if 
230.
            nemmas = 0 
231.
        Next 
232.
 
233.
        Detail = feedback 
234.
end function 
235.
 
236.
Sub Aufgabe1 
237.
 
238.
        woissndes = pfad.value 
239.
        dateiname = replace(woissndes,"\","_") 
240.
        dateiname = replace(dateiname,":","_") 
241.
        dateiname = dateiname & "_" & dateityp.value & ".csv" 
242.
 
243.
        call meineVids(woissndes,dateiname) 
244.
 
245.
         DataArea.InnerHTML = "<a href='" & dateiname & "'>CSV</a> und " & "<a href='" & replace(dateiname,"csv","mdb") & "'>MDB</a>   erfolgreich angelegt" 
246.
 
247.
 
248.
End Sub 
249.
 
250.
</script> 
251.
 
252.
 
253.
<body bgcolor=#FAF8AF> 
254.
<font face=verdana> 
255.
Pfad: <input type="Text" name="pfad" value="C:\" size="" maxlength=""><br><br> 
256.
 
257.
 
258.
Was erscheint als Typ, wenn man den Mauszeiger über eine gesuchte Datei bewegt: <input type="Text" name="Dateityp" value="audio" size="25" maxlength="20"> <br> 
259.
<font size = 1> 
260.
(es können auch mehrere Typen, durch <b>;</b> getrennt, angegeben werden!)<br> 
261.
Beispiele: Irfan;Windows Media;excel;word;winamp ...</font><br><br> 
262.
 
263.
 
264.
Die Anzeige der Ordner wird auf <input type="Text" name="ordner_zeichen" value="200" size="" maxlength=""> eingeschränkt!<br><br> 
265.
 
266.
Die Anzeige der Dateinamen wird auf <input type="Text" name="datei_zeichen" value="200" size="" maxlength=""> eingeschränkt!<br><br> 
267.
 
268.
Sollen auch Ordner angezeigt werden, die den gewünschten Dateityp NICHT enthalten? 
269.
Ja <input type="radio" name="radiobutton" value="0"> Nein <input type="radio" name="radiobutton" value="1" checked><br><br> 
270.
Sollen in der .csv-Datei Links zu den Dateien erscheinen? 
271.
Ja <input type="radio" name="urlbutton" value="0"> Nein <input type="radio" name="urlbutton" value="1" checked><br><br> 
272.
<br> 
273.
 
274.
 
275.
<input type="button" value="Datei anlegen" name="run_button" onClick="Aufgabe1"><br> 
276.
<font size = 1>(Die Verarbeitung kann mehrere Minuten dauern... Bitte um etwas Geduld)</font> 
277.
 
278.
<br><br><br> 
279.
<b> 
280.
<div id="dataarea"></div> 
281.
</b> 
282.
</font> 
283.
</body>
Anmerkungen oder Fragen sind wie immer herzlich willkommen...

lg
Edi
Mitglied: diekoenigs
20.04.2010 um 08:35 Uhr
Sehr geile Idee und sieht gut aus.
Habs zwar noch nicht versucht, werds bei Gelegenheit tun.

OT: Am coolsten find ich den Teil des Codes:

woissndes = pfad.value

:D
Eindeutig eindeutig..
Bitte warten ..
Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 7 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 9 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...