Weiter zum Inhalt
  • Kategorien
  • Aktuell
  • Tags
  • Beliebt
  • Welt
  • Benutzer
  • Gruppen
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
Audiograbber

Audiograbber Forum

  1. Übersicht
  2. Audiograbber
  3. Bedienung/Allgemein
  4. Datenbank mit discs.txt

Datenbank mit discs.txt

Geplant Angeheftet Gesperrt Verschoben Bedienung/Allgemein
3 Beiträge 2 Kommentatoren 1.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • didi257D
    didi257D
    didi257
    schrieb am zuletzt editiert von
    #1

    Hallo,
    hat schon jemand die Datei Discs.txt in ein Datenbankformat umgewandelt? Wenn ja, ist das Tool zu haben?

    Gruß
    Didi

    1 Antwort Letzte Antwort
    0
    • T
      T
      toast78
      schrieb am zuletzt editiert von
      #2

      Tool nicht, aber ich kann dir einen Auszug aus meinem VBA-Programm geben.

      &#039;--------------------------------------------------------------------------<br />&#039;Funktion     : CDInDatenbank<br />&#039;Beschreibung : Überprüft, ob eine übergebene CD bereits in der Datenbank<br />&#039;               vorhanden ist<br />&#039;Version      : 1<br />&#039;Autor        : Der langhaarige Bombenleger<br />&#039;Parameter    : SerienNr        =  Serien-Nr aus CDPlayer.ini<br />&#039;               Interpret       = Interpretenname<br />&#039;               Album           = Albenname<br />&#039;               MeldungAnzeigen = True, wenn eine Meldung angezeigt werden<br />&#039;                   soll, wenn die CD schon vorhanden ist<br />&#039;Rückgabewert : True, wenn alles geklappt hat<br />&#039;Beispiel     : CDInDatenbank(&quot;[227A552]&quot;, &quot;Rockhard-Magazin&quot;, &quot;Dynamit Vol. 44&quot;)<br />&#039;--------------------------------------------------------------------------<br /><br />Public Function CDInDatenbank(SerienNr As String, _<br />                              Interpret As String, _<br />                              Album As String, _<br />                              Optional MeldungAnzeigen As Boolean = False) As Boolean<br />Dim intStatus As Integer  &#039;1= CD ist in der Datenbank vorhanden<br />                          &#039;       (kein Fehler)<br />                          &#039;2= CD ist unter anderem Albennamen gespeichert<br />                          &#039;4= CD ist unter anderem Interpreten vorhanden<br />                          &#039;5= CD ist unter anderem Albennamen<br />                          &#039;       &amp; Interpreten vorhanden<br />Dim strMeldung As String<br />Dim rstSuchen As DAO.Recordset<br /><br />Set rstSuchen = CodeDb.OpenRecordset(&quot;SELECT * FROM Alben &quot; &amp; _<br />      &quot;WHERE SerienNr = &#039;&quot; &amp; SerienNr &amp; &quot;&#039;&quot;)<br /><br />If Not rstSuchen.EOF Then<br />  CDInDatenbank = True<br />  intStatus = 1<br />  If Album &lt;&gt; rstSuchen!Albenname Then<br />    intStatus = intStatus + 1<br />  End If<br />  <br />  If Interpret &lt;&gt; Nz(DLookup(&quot;Interpret&quot;, _<br />      &quot;Interpreten&quot;, &quot;InterpretenID=&quot; &amp; rstSuchen!InterpretenID), &quot;&quot;) Then<br />    intStatus = intStatus + 3<br />  End If<br />  <br />  If intStatus &gt; 1 And MeldungAnzeigen Then<br />    Select Case intStatus<br />    Case 2 &#039;Anderer Albenname<br />      strMeldung = &quot;CD ist unter anderem Albenname eingetragen!&quot;<br />    Case 4 &#039;Anderer Interpret<br />      strMeldung = &quot;CD ist unter anderem Interpreten eingetragen!&quot;<br />    Case 5 &#039;Anderer Albenname &amp; Interpret<br />      strMeldung = &quot;CD ist unter anderem Albenname &amp; &quot; &amp; _<br />          &quot;Interpreten eingetragen!&quot;<br />    End Select<br />    <br />    MsgBox strMeldung, vbCritical + vbOKOnly, &quot;CD-Datenbank&quot;<br />  End If<br />Else<br />  CDInDatenbank = False<br />End If<br />rstSuchen.Close<br />End Function<br /><br />&#039;--------------------------------------------------------------------------<br />&#039;Prozedur     : FindDiscDiscs<br />&#039;Beschreibung : Sucht in der Discs.txt nach Audio-CDs. Wird eine CD<br />&#039;               gefunden, so werden die Ergebnisse an die String-Parameter<br />&#039;               zurückgegeben.<br />&#039;Version      : 2 : Anpassung an mehrere Schnittstellen<br />&#039;Autor        : Der langhaarige Bombenleger<br />&#039;Parameter    : CDDBID = Disc-ID mit der auch die CD auf den FreeDB-<br />&#039;                   Servern eindeutig identifiziert wird<br />&#039;               Serialnumber = Seriennummer der gefundenen CD<br />&#039;                   (Achtung! hat nicht mit der CDDBID gemein!)<br />&#039;               Artist = Interpret der CD<br />&#039;               Title = CD-Titel<br />&#039;Beispiel     : Call FindDiscDiscs(strCDDBID, strSerialnumber, strArtist,<br />&#039;                   strTitle, DateiNr) In den Stringvariablen stehen<br />&#039;               dann die Informationen der gefundenen CD.<br />&#039;--------------------------------------------------------------------------<br /><br />Private Sub FindDiscDiscs(ByRef CDDBID As String, _<br />                          ByRef Serialnumber As String, _<br />                          ByRef Artist As String, _<br />                          ByRef Title As String, _<br />                          QuellDateiNr As Integer)<br />                      <br />&#039;CDDBID:0D0B1312<br />&#039;[18D0754]<br />&#039;artist=Sesamstraße<br />&#039;title=Die schönster Lieder<br />&#039;numtracks=18<br />&#039;compilationdisc=No<br />&#039;Genre=Pop<br />&#039;Year=1994<br />&#039;comment=<br />&#039;0=Quietsche-Entchen<br />&#039;...<br />&#039;17=Denn Keks schmeckt lecker, lecker, lecker<br />&#039;frames=33,10895,21498,37220,47630,60235,74233,<br />&#039;order=0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17<br /><br />While Not Left(Artist, 7) = &quot;artist=&quot; And Not EOF(QuellDateiNr)<br />  <br />  If (Left(Artist, 7) &lt;&gt; &quot;artist=&quot;) Or _<br />      (Left(Artist, 6) &lt;&gt; &quot;Title=&quot;) Then<br />    CDDBID = Serialnumber<br />    Serialnumber = Artist<br />    Artist = Title<br />  End If<br />  <br />  If Not EOF(QuellDateiNr) Then<br />    Line Input #QuellDateiNr, Title<br />  End If<br />Wend<br /><br />End Sub<br /><br />&#039;--------------------------------------------------------------------------<br />&#039;Prozedur     : SongsLesenDiscs<br />&#039;Beschreibung : Liest Songs aus der Discs.txt in die temporäre Tabelle<br />&#039;               tmpCDPlayerINIImportSongs ein<br />&#039;Version      : 2 : Anpassung an mehrere Schnittstellen<br />&#039;Autor        : Der langhaarige Bombenleger<br />&#039;Parameter    : QuelldateiNr = Datei-Nr. auf die zugegriffen wird<br />&#039;               SerienNr =  Serien-Nr aus CDPlayer.ini<br />&#039;Beispiel     : CallSongsLesenINI(1, &quot;[123456]&quot;)<br />&#039;--------------------------------------------------------------------------<br /><br />Private Sub SongsLesenDiscs(ByVal QuellDateiNr As Integer, _<br />                       ByVal SerienNr As String)<br />Dim Track As String<br />Dim TrackName As String<br />Dim TrackNr As String<br />Dim rstSongs As Recordset<br />Dim varFrames As Variant<br />Dim i As Integer<br /><br />Set rstSongs = CodeDb.OpenRecordset(&quot;SELECT * FROM tmpCDPlayerINIImportSongs &quot; &amp; _<br />    &quot;WHERE SerienNr = &#039;&quot; &amp; SerienNr &amp; &quot;&#039;&quot;)<br />    <br />If Not rstSongs.EOF Then<br />  MsgBox &quot;Es sind bereits Songs zu dieser Serien-Nr. vorhanden! Serien-Nr. nicht eindeutig!&quot;, _<br />      vbOKOnly + vbCritical<br />  Exit Sub<br />End If<br /><br />With rstSongs<br />  &#039;Songs erstmal einlesen<br />  Do<br />    If Not EOF(QuellDateiNr) Then<br />      Line Input #QuellDateiNr, Track<br />    End If<br />    If (Left(Track, 7) &lt;&gt; &quot;frames=&quot; And _<br />        IsNumeric(Left(Track, InStr(Track, &quot;=&quot;) - 1)) = True) And Track &lt;&gt; &quot;&quot; Then<br />      .AddNew<br />      .Fields(&quot;SerienNr&quot;) = SerienNr<br />      TrackNr = Left(Track, InStr(Track, &quot;=&quot;) - 1)<br />      .Fields(&quot;Nr&quot;) = CInt(TrackNr) + 1<br />      .Fields(&quot;Titel&quot;) = IIf(Len(Right(Track, Len(Track) - _<br />          InStr(Track, &quot;=&quot;))) = 0, &quot;(No Name)&quot;, Right(Track, Len(Track) - InStr(Track, &quot;=&quot;)))<br />      .Update<br />      Track = &quot;&quot;<br />    End If<br />  <br />  Loop Until Left(Track, 7) = &quot;frames=&quot; Or EOF(QuellDateiNr)<br />  <br />  &#039;Start-Frames sind erst am Ende eingetragen, deswegen eine zweite Schleife<br />  varFrames = Split(Mid(Track, 8), &quot;,&quot;)<br />  .MoveFirst<br />  &#039;Debug.Print .RecordCount<br />  &#039;If Not .EOF Then<br />    For i = 0 To UBound(varFrames) - 1<br />      .Edit<br />      If InStr(varFrames(i), &quot;(&quot;) &gt; 0 Then<br />        .Fields(&quot;Frame&quot;) = Left(varFrames(i), InStr(varFrames(i), &quot;(&quot;) - 1)<br />      Else<br />        .Fields(&quot;Frame&quot;) = varFrames(i)<br />      End If<br />      .Update<br />      .MoveNext<br />    Next i<br />  &#039;End If<br />End With<br />End Sub<br /><br />&#039;--------------------------------------------------------------------------<br />&#039;Prozedur     : StandardDiscsAuswahl<br />&#039;Beschreibung : Liest die CD-Header (Interpret, Album, Seriennr...) aus der<br />&#039;               Discs.txt. Die Ergebnisse werden dabei in einem<br />&#039;               Listview abgespeichert. Zusätzlich wird überprüft, ob die<br />&#039;               CD schon in der Datenbank vorhanden ist. Ist die CD nicht<br />&#039;               vorhanden, so wird bei dieser CD dann im Listview ein<br />&#039;               Haken gesetzt.<br />&#039;Version      : 2 : Anpassung an mehrere Schnittstellen<br />&#039;Autor        : Der langhaarige Bombenleger<br />&#039;Beispiel     : Call StandardDiscsAuswahl()<br />&#039;--------------------------------------------------------------------------<br /><br />Private Sub StandardDiscsAuswahl()<br />Dim Quelldatei As String<br />Dim DateiNr As Integer<br /><br />Dim strCDDBID As String<br />Dim strSerialnumber As String<br />Dim strArtist As String<br />Dim strTitle As String<br />Dim litmEintrag As MSComctlLib.ListItem<br /><br />Me.CDsAnzeigen.ListItems.Clear<br />Me.CDsAnzeigen.ColumnHeaders.Clear<br />Me.CDsAnzeigen.ColumnHeaders.Add , , &quot;Interpret&quot;, 2000<br />Me.CDsAnzeigen.ColumnHeaders.Add , , &quot;Album&quot;, 2500<br />Me.CDsAnzeigen.ColumnHeaders.Add , , &quot;Jahr&quot;, 540<br />Me.CDsAnzeigen.ColumnHeaders.Add , , &quot;Musikstil&quot;, 1200<br />Me.CDsAnzeigen.ColumnHeaders.Add , , &quot;CDDBID&quot;, 1000<br />Me.CDsAnzeigen.ColumnHeaders.Add , , &quot;Serien-Nr.&quot;, 1000<br />Me.CDsAnzeigen.ColumnHeaders.Add , , &quot;Sampler&quot;, 800<br /><br />Quelldatei = &quot;C:\Programme\Audiograbber\Discs.txt&quot;<br />CodeDb.Execute (&quot;DELETE * FROM tmpCDPlayerINIImportSongs&quot;)<br /><br />If Nz(Dir(Quelldatei), &quot;&quot;) = &quot;&quot; Then<br />  MsgBox Quelldatei &amp; &quot; konnte nicht gefunden werden! &quot; &amp; _<br />      &quot;Import nicht möglich!&quot;, vbOKOnly + vbCritical, &quot;Datei nicht gefunden&quot;<br />  DoCmd.Close acForm, Me.Name, acSavePrompt<br />  Exit Sub<br />End If<br /><br />DateiNr = FreeFile<br />Open Quelldatei For Input As #DateiNr<br />DoCmd.Hourglass True<br />  <br />Do<br />  &#039;Variablen vom letzten Schleifendurchgang leeren<br />  strCDDBID = &quot;&quot;<br />  strSerialnumber = &quot;&quot;<br />  strArtist = &quot;&quot;<br />  strTitle = &quot;&quot;<br />  <br />  Call FindDiscDiscs(strCDDBID, strSerialnumber, strArtist, strTitle, _<br />      DateiNr)<br />  If Not EOF(DateiNr) Then<br />    Set litmEintrag = Me.CDsAnzeigen.ListItems.Add(, , _<br />        Mid(strArtist, 8)) &#039;&quot;Item=&quot; &amp; str(Me.CDsAnzeigen.ListItems.Count + 1)<br />    litmEintrag.SubItems(1) = Mid(strTitle, 7)<br />    litmEintrag.SubItems(4) = Mid(strCDDBID, 8)<br />    litmEintrag.SubItems(5) = strSerialnumber<br />    <br />    &#039;Restliche Informationen aus Schnittstelle lesen<br />    Do<br />      If Left(strTitle, 16) = &quot;compilationdisc=&quot; Then<br />        litmEintrag.SubItems(6) = IIf(Mid(strTitle, 17) = &quot;yes&quot;, &quot;Ja&quot;, &quot;Nein&quot;)<br />      End If<br />      <br />      strArtist = strTitle<br />      Line Input #DateiNr, strTitle<br />    Loop Until Left(strTitle, 5) = &quot;year=&quot; Or EOF(DateiNr)<br />    <br />    &#039;Informationen dann in Listitem schreiben<br />    If Not EOF(DateiNr) Then<br />      litmEintrag.SubItems(2) = Mid(strTitle, 6) &#039;Jahr<br />      litmEintrag.SubItems(3) = Mid(strArtist, 7) &#039;Musikstil/Genre<br />    End If<br />    <br />    litmEintrag.Checked = Not CDInDatenbank(strSerialnumber, strArtist, strTitle, False)<br />    Call SongsLesenDiscs(DateiNr, strSerialnumber)<br />    <br />  End If<br />Loop Until EOF(DateiNr)<br /><br />DoCmd.Hourglass False<br /><br />End Sub
      
      1 Antwort Letzte Antwort
      0
      • didi257D
        didi257D
        didi257
        schrieb am zuletzt editiert von
        #3

        Vielen Dank! 🙂

        Ich werde es in den nächsten Tagen ausprobieren!

        Tschüss!
        Didi

        1 Antwort Letzte Antwort
        0

        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

        Registrieren Anmelden
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        Powered by NodeBB Contributors
        • Erster Beitrag
          Letzter Beitrag
        0
        • Kategorien
        • Aktuell
        • Tags
        • Beliebt
        • Welt
        • Benutzer
        • Gruppen