Hallo,
ich bastel an einer Datenbank bestehend aus Access und VB6.
Dort bekomme ich Datensätze von beliebiger Länge (CD-Tracks, bestehend aus Nummer, Länge, Name des Tracks) jeweils deklariert als 'Collection'.
Ich benutze das Script zur Verbindung an eine CDDB von Michael L. Barker für das Auslesen der Informationen einer CD.
Und diese möchte ich halt auf meine Access-Datenbank bringen.
Künstler sowie Albeninformationen stellen kein Problem für mich dar, da es sich hierbei um einzelne Daten handelt.
Aber im Falle von tracks (Liedern) handelt es sich ja immer um mehrere, und da bin ich im Moment Ideenlos wie ich die Daten auseinander nehmen kann, um diese dann autom. in meine Datenbank zu schreiben.
Es müssen halt n neue Datensätze erstellt werden, wobei n = trackcount. Sprich die Zahl wie viele Datensätze eingepflegt werden müssen habe ich.
Nun muss ich aber diesen Nummern auch die Trackinfos wie Name, Länge und Nummer auf der CD zuweisen, nur wie schaffe ich es das dies in Absteigender Reihenfolge passiert, sprich Lied 1 als erstes in die DB wandert, Lied 2 danach usw.
Mein erster Gedanke war zuerst die n neuen Datensätze leer zu erstellen, so dass ich bereits die Auto-ID bekomme.
Danach wollte ich in diese n Datensätze dann die Informationen schreiben per Update, allerdings weis ich nicht wie das gehen soll, da ich ja den Zeiger auf die Datensätze erhöhen muss sowie gleichzeitig den Zeiger(?) innerhalb des Arrays oder was auch immer ich dort habe worin meine Daten sind.
Hier ein paar Codeschnipsel, ich hoffe ich erwische die richtigen damit mir eventuell jemand zu helfen vermag
Private Sub UserControl_Initialize()
Set fso = New FileSystemObject
Set colTrackNames = New Collection
Set colTrackLengths = New Collection
Set colTrackFrames = New Collection
Set colTrackOffsets = New Collection
End Sub 'Parse for artist/album/track names
If InStr(1, strText, " CD database entry follows (until terminating `.')", _
vbTextCompare) Then
strTemp = Split(strText, vbCrLf)
For a = 0 To UBound(strTemp)
'Disk title
If InStr(1, strTemp(a), "DTITLE=", vbTextCompare) Then
strTempString = Mid(strTemp(a), 8, Len(strTemp(a)) - 7)
strTemp2$ = Split(strTempString, " / ")
strArtistName = strTemp2$(0)
strAlbumName = strTemp2$(1)
strTempString = ""
End If
'Track title
If InStr(1, strTemp(a), "TTITLE", vbTextCompare) Then
strTempString = InStr(1, strTemp(a), "=", vbTextCompare) + 1
strTempString = Mid(strTemp(a), strTempString, Len(strTemp(a)) _
- strTempString + 1)
Winsock1.SendData "quit" & vbCrLf
colTrackNames.Add strTempString
strTempString = ""
End If
Next
End If Name und Länge der Tracks scheinen meiner Meinung nach hier in die Liste geschrieben zu werden:
Public Property Get TrackName(Index As Integer) As String
'Verify index
If Index < 1 Or Index > colTrackNames.Count Then
TrackName = ""
Else
TrackName = colTrackNames(Index)
End If
End Property
Public Property Get TrackLength(Index As Integer) As Long
'Verify index
If Index < 1 Or Index > colTrackLengths.Count Then
TrackLength = 0
Else
TrackLength = Val(colTrackLengths(Index))
End If
End Property Nur wie komme ich nun an diese Infos wieder heran?
Michael |