Seite 3 von 4

Verfasst: 23.12.2007 12:40
von Bisonte
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...

Verfasst: 25.02.2008 14:47
von alen
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.

Verfasst: 25.02.2008 15:00
von PMV
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 :D :

Code: Alles auswählen

SendNetworkString(ConVar\CID, ReplaceString(HttpHeader, "{HTTPGETCOMMAND}", GetGadgetText(0)))
Kommst selbst drauf? :wink:

MFG PMV

Verfasst: 25.02.2008 17:24
von alen
Hallo @PMV,

jetzt blicke ich durch, das ist ein Platzhalter damit der HttpHeader String leserlicher bleibt, wird dann später ersetzt.

Ich bin doch wirklich nicht sofort drauf gekommen und habe es aus dem Quellcode nicht erkannt.

Danke für den Schlag auf den Hinterkopf. :oops:

Grüße
Alen

Re: Die Sache mit den mehrfachen DiscIDs

Verfasst: 23.11.2008 15:58
von VisionA
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

Mein Quellcode funktioniert nicht mehr ?!?!

Verfasst: 21.01.2012 14:33
von alen
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
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

Re: Interesse an Mitarbeit an Hobby Projekt ?

Verfasst: 23.01.2012 11:59
von jpd
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

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


Re: Interesse an Mitarbeit an Hobby Projekt ?

Verfasst: 23.01.2012 14:14
von alen
@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

Re: Interesse an Mitarbeit an Hobby Projekt ?

Verfasst: 23.01.2012 14:48
von ts-soft
@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 :wink:

Danke und Gruß
Thomas

Re: Interesse an Mitarbeit an Hobby Projekt ?

Verfasst: 23.01.2012 15:02
von jpd
Hi Alen,

müsste eingentlich in Tipps und Tricks rein ..oder?

Grüße
jpd