Titel von AudioCDs von FreeDB.org holen & DiscID berechnen
Ich bekomme mit dem request immer nur eine ID... immer die erste. Wenn ich den gleichen Query im Browser benutze bekomme ich z.B. 2 ID's angezeigt.... das ist es was mich verwirrt...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- alen
- Beiträge: 107
- Registriert: 09.04.2007 17:38
- Computerausstattung: Main Hardware: AMD Ryzen 5 1600 - 6 Core / Gigabyte B450 Aorus Pro / Sapphire RX580 8GB
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64 on various Hardware Platforms - Wohnort: Duisburg
- Kontaktdaten:
Hallo Zusammen,
länger ist es her aber ich habe es mal wieder geschafft an diesen Thread anzuknüpfpen. Ich habe mal den Code von Rings (nachgebessert von HexOR) mal versucht in mein Projekt einzubauen.
Dabei habe ich noch Verständnisprobleme. Was ist das "{HTTPGETCOMMAND}" ? Was das für die Abfrage sein soll ist mir schon klar aber wo stammt dieses Gebilde her ? Es wird nirgends zusammengebaut oder definiert. Woher kennt Purebasic das ? Das gibt normale Online Hilfe mit F1 nicht her.
Ich merke das ich auch bei PB noch jede Menge lernen muss. Bitte um symbolischen Schlag auf den Hinterkopf falls ich es zu langsam kapiere oder die falschen Wissenquellen habe.
Grüße
Alen H. aus D.
länger ist es her aber ich habe es mal wieder geschafft an diesen Thread anzuknüpfpen. Ich habe mal den Code von Rings (nachgebessert von HexOR) mal versucht in mein Projekt einzubauen.
Dabei habe ich noch Verständnisprobleme. Was ist das "{HTTPGETCOMMAND}" ? Was das für die Abfrage sein soll ist mir schon klar aber wo stammt dieses Gebilde her ? Es wird nirgends zusammengebaut oder definiert. Woher kennt Purebasic das ? Das gibt normale Online Hilfe mit F1 nicht her.
Ich merke das ich auch bei PB noch jede Menge lernen muss. Bitte um symbolischen Schlag auf den Hinterkopf falls ich es zu langsam kapiere oder die falschen Wissenquellen habe.
Grüße
Alen H. aus D.
Das gibs so auch nicht ... schau dir mal den Code etwas weiter unten an,
da gibs die folgende Zeile ... oder ähnlich, hab einfach einen der beiden
Codes schnell die Zeile kopiert
:
Kommst selbst drauf?
MFG PMV
da gibs die folgende Zeile ... oder ähnlich, hab einfach einen der beiden
Codes schnell die Zeile kopiert

Code: Alles auswählen
SendNetworkString(ConVar\CID, ReplaceString(HttpHeader, "{HTTPGETCOMMAND}", GetGadgetText(0)))

MFG PMV
- alen
- Beiträge: 107
- Registriert: 09.04.2007 17:38
- Computerausstattung: Main Hardware: AMD Ryzen 5 1600 - 6 Core / Gigabyte B450 Aorus Pro / Sapphire RX580 8GB
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64 on various Hardware Platforms - Wohnort: Duisburg
- Kontaktdaten:
Re: Die Sache mit den mehrfachen DiscIDs
hallo zusammen,
ich mache immer wieder den gleichen Fehler, fange an einem Problem zu programmieren an und plage mich, bevor ich in den PB Foren suche, ob nicht vor mir jemand das Rad schon erfunden hat.
So ging es mir auch mit dem Problem der FreeDB Abfrage, oh hätt' ich doch....
Trotzdem, hat jemand inzwischen eine Methode gefunden, wie man in FreeDB nach mehrfach eingetragenen DiscID's sucht,
ohne die Anfrage mit allen möglichen Genres zu wiederholen, oder führt daran kein Weg vorbei ?
mfG
VisionA
ich mache immer wieder den gleichen Fehler, fange an einem Problem zu programmieren an und plage mich, bevor ich in den PB Foren suche, ob nicht vor mir jemand das Rad schon erfunden hat.
So ging es mir auch mit dem Problem der FreeDB Abfrage, oh hätt' ich doch....
Trotzdem, hat jemand inzwischen eine Methode gefunden, wie man in FreeDB nach mehrfach eingetragenen DiscID's sucht,
ohne die Anfrage mit allen möglichen Genres zu wiederholen, oder führt daran kein Weg vorbei ?
mfG
VisionA
- alen
- Beiträge: 107
- Registriert: 09.04.2007 17:38
- Computerausstattung: Main Hardware: AMD Ryzen 5 1600 - 6 Core / Gigabyte B450 Aorus Pro / Sapphire RX580 8GB
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64 on various Hardware Platforms - Wohnort: Duisburg
- Kontaktdaten:
Mein Quellcode funktioniert nicht mehr ?!?!
Hallo Zusammen,
nach langer Zeit packe ich wieder ein paar ehemalige Projekte an und merke dabei, dass der u.g. Quellcode unter Purebasic 4.60 nicht mehr funktionert.
Der Code ist 100% der den ich mal veröffentlicht hatte und der auch bei Purebasic 4.30 funktionierte. Die Berechnung der DiscID fällt irgendwo bei der Berechnung auf die Nase. Vielleicht hat jemand eine Idee was im Laufe der Purebasic Evolution verändert haben könnte. Ich sehe im Moment keinen Fehler.
Grüße
Alen
nach langer Zeit packe ich wieder ein paar ehemalige Projekte an und merke dabei, dass der u.g. Quellcode unter Purebasic 4.60 nicht mehr funktionert.
Der Code ist 100% der den ich mal veröffentlicht hatte und der auch bei Purebasic 4.30 funktionierte. Die Berechnung der DiscID fällt irgendwo bei der Berechnung auf die Nase. Vielleicht hat jemand eine Idee was im Laufe der Purebasic Evolution verändert haben könnte. Ich sehe im Moment keinen Fehler.
Grüße
Alen
alen hat geschrieben:Code: Alles auswählen
Global NewList StartTrackList() Global NumberOfDrives = InitAudioCD() Procedure.s GetHourFormat(LengthInSeconds) Minutes = LengthInSeconds / 60 Seconds = LengthInSeconds - Minutes * 60 If Seconds < 10 Null.s = "0" Else Null.s = "" EndIf ProcedureReturn RSet(Str(Minutes),2,"0")+":" + Null.s + Str(Seconds) EndProcedure Procedure.l SumDigits(numbers) While numbers > 0 qs = qs + (numbers % 10) numbers = numbers / 10 Wend ProcedureReturn qs EndProcedure Procedure.s CalcRawDiscID(List StartTrackList()) Counter = 1 ForEach StartTrackList() track_length = AudioCDTrackLength(Counter) total_length + track_length CheckSum + SumDigits(StartTrackList()) Counter + 1 Next Temp = (CheckSum % $FF) << 24 XX.s = LCase(RSet(Hex(Temp), 2, "0")) YYYY.s = LCase(RSet(Hex(AudioCDLength()), 4, "0")) ZZ.s = LCase(RSet(Hex(AudioCDTracks()), 2, "0")) RawDiscID.s = XX.s + YYYY.s + ZZ.s ProcedureReturn RawDiscID.s EndProcedure Procedure CreateTrackList() If NumberOfDrives > 0 For Drive = 1 To NumberOfDrives UseAudioCD(Drive-1) If AudioCDTracks() > 0 NumTracks = AudioCDTracks() InsertElement(StartTrackList()) StartTrackList() = 2 For Track = 1 To NumTracks StartTimeTrack = StartTimeTrack + AudioCDTrackLength(Track) AddElement(StartTrackList()) StartTrackList() = StartTimeTrack Next LastElement(StartTrackList()) DeleteElement(StartTrackList()) EndIf Next EndIf EndProcedure If NumberOfDrives = 0 MessageRequester("Fehler", "Keine CD-Audio Laufwerke gefunden", 0) End Else ClearList(StartTrackList()) CreateTrackList() RawDiscID.s = CalcRawDiscID(StartTrackList()) Debug "*** DiscID ***" Debug RawDiscID Debug "" Debug "*** Startzeiten der Tracks ***" ForEach StartTrackList() Debug GetHourFormat(StartTrackList()) Next EndIf
---
Main Hardware: AMD Ryzen 5 1600 - 6 Core / Asus B350M-A / Nvidia GTX650
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64
on various Hardware Platforms (Notebook and Desktop)
Main Hardware: AMD Ryzen 5 1600 - 6 Core / Asus B350M-A / Nvidia GTX650
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64
on various Hardware Platforms (Notebook and Desktop)
Re: Interesse an Mitarbeit an Hobby Projekt ?
Hallo Alen,
dein code funktionierte mit 4.20 einwandfrei danach mit 4.30 hat sich der befehl hex() geändert also wurde hexq() entfehrnt und dafür wurde hex mit parameter gesteuert.
auf jeden fall das problem ist an folgende procedure wenn temp als quad deklariert wird und hex die zu konvertierende zahl als quad behandelt dann tut's.
Ciao
jpd
dein code funktionierte mit 4.20 einwandfrei danach mit 4.30 hat sich der befehl hex() geändert also wurde hexq() entfehrnt und dafür wurde hex mit parameter gesteuert.
auf jeden fall das problem ist an folgende procedure wenn temp als quad deklariert wird und hex die zu konvertierende zahl als quad behandelt dann tut's.
Ciao
jpd
Code: Alles auswählen
Procedure.s CalcRawDiscID(List StartTrackList())
Protected temp.q
Counter = 1
ForEach StartTrackList()
track_length = AudioCDTrackLength(Counter)
total_length + track_length
CheckSum + SumDigits(StartTrackList())
Counter + 1
Next
Debug CheckSum
Temp = (CheckSum % $FF) << 24
XX.s = LCase(RSet(Hex(Temp,#PB_Quad), 2, "0"))
YYYY.s = LCase(RSet(Hex(AudioCDLength(),#PB_Quad), 4, "0"))
ZZ.s = LCase(RSet(Hex(AudioCDTracks(),#PB_Quad), 2, "0"))
RawDiscID.s = XX.s + YYYY.s + ZZ.s
ProcedureReturn RawDiscID.s
EndProcedure
PB 5.10 Windows 7 x64
- alen
- Beiträge: 107
- Registriert: 09.04.2007 17:38
- Computerausstattung: Main Hardware: AMD Ryzen 5 1600 - 6 Core / Gigabyte B450 Aorus Pro / Sapphire RX580 8GB
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64 on various Hardware Platforms - Wohnort: Duisburg
- Kontaktdaten:
Re: Interesse an Mitarbeit an Hobby Projekt ?
@jpd
Grüß Dich jpd,
das werde ich heute Abend direkt mal antesten. Hier in Köln habe ich kein PB dabei
Derzeit bin ich neuer Abteilung unterwegs und habe da noch nicht so alle Möglichkeiten.
Im Voraus schonmal vielen Dank fürs drüber schauen.
Grüße
Alen
Grüß Dich jpd,
das werde ich heute Abend direkt mal antesten. Hier in Köln habe ich kein PB dabei

Derzeit bin ich neuer Abteilung unterwegs und habe da noch nicht so alle Möglichkeiten.
Im Voraus schonmal vielen Dank fürs drüber schauen.
Grüße
Alen
---
Main Hardware: AMD Ryzen 5 1600 - 6 Core / Asus B350M-A / Nvidia GTX650
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64
on various Hardware Platforms (Notebook and Desktop)
Main Hardware: AMD Ryzen 5 1600 - 6 Core / Asus B350M-A / Nvidia GTX650
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64
on various Hardware Platforms (Notebook and Desktop)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Interesse an Mitarbeit an Hobby Projekt ?
@alen
Wäre nett, wenn Du den Thread Titel im ersten Posting anpasst. Hätte ich gewusst, das hier auch Tipps zu freedb.org enthalten
sind, hätte ich hier schon früher mitgelesen
Danke und Gruß
Thomas
Wäre nett, wenn Du den Thread Titel im ersten Posting anpasst. Hätte ich gewusst, das hier auch Tipps zu freedb.org enthalten
sind, hätte ich hier schon früher mitgelesen

Danke und Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Interesse an Mitarbeit an Hobby Projekt ?
Hi Alen,
müsste eingentlich in Tipps und Tricks rein ..oder?
Grüße
jpd
müsste eingentlich in Tipps und Tricks rein ..oder?
Grüße
jpd
PB 5.10 Windows 7 x64