Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 830
jeg holder på med et lite prosjekt, som har i oppgave å hente data fra en xml fil som blir generert av nowplaying-pluginen til winamp.
programmet mitt skal hente ut artist og sangnavn fra xml-fila, lage en checksum, og bygge en string, som så sendes ut via seriaporten, og inn i et LED-skilt fra ClasOhlson.

http://www.f-secure.com/linux-weblog...he-linux-team/

problemet mitt er at jeg ikke får checksumen helt til.

Sitat av trtrtr@diskusjon.no
det loopes over hvert tegn i inputstring og gjøres en xor på ascii verdi til hver av disse mot "checksum", en tallverderdi som endres underveis.
Vis hele sitatet...
http://www.diskusjon.no/index.php?showtopic=999446




dette er koden jeg har kommet frem til så langt:

Kode

Public Class Form1
    Dim page As Long
    Dim str As String
    Dim checksum As Long
    Dim chk As String
    Dim ledcode As String
    Dim counter As Long
    Dim character As String
    Dim lengde As Long

    Private Sub calculate_checksum() Handles Button2.Click

        str = TextBox1.Text
        checksum = 74
        counter = 0
        lengde = str.Length

        For Me.counter = 0 To lengde Step 1
            character = str.Substring(counter)

            chk = Asc(character)
            checksum = checksum Xor chk
        Next
        Label1.Text = checksum
        counter = 0
    End Sub

edit: bare spør og grav hvis det er noe informasjon som mangler
Sist endret av VivaLatrina; 14. september 2008 kl. 20:07.
Refleksvest
VivaLatrina's Avatar
Trådstarter
Beklager dobbelpost, men nå tror jeg at jeg har kommet et hakk nærmere målet. jeg har funnet ut at alle utregningene foregår i hex, med hex verdiene til ascii tegnene. jeg regnet ut med vitenskapelig kalkulator i windows, og da ble alt riktig når jeg brukte hex verdiene.

etter en god natts søvn fant jeg ut at man ikke trenger å bruke hex verdiene, det var bare jeg som hadde glemt å endre modus i kalkulatoren. men verdien må uansett endres til et tosifret hex-tall før den kjøres inn i slutten av stringen

VB er et rotete stråk, er det noen som vet hvordan man skriver hex-formaterte tall i vb? jeg mener å huske noe med et dollartegn, istedet for x, slik at 0x74 blir 0$74.
Refleksvest
VivaLatrina's Avatar
Trådstarter
jeg kan ikke beskrive hvor mye jeg hater dobbelposter, og enda verre trippelposter, men nå fikk jeg det til, og det eneste jeg mangler er å lese fra ei xml fil.
Ja, jeg antar at du bruker string.Format eller noe lignende for løsningen din? Det skal i alle fall kunne spytte ut hex-verdiene dine.

Hva mener du med xml-fil da? Her har du flere muligheter. Rett og slett bare kjøre regexp på den dataen du skal ha ut, eller bruke .NET sine innebygde funksjoner for å lese ut de nodene i xml-filen din. Veldig enkelt egentlig, og du finner massevis av eksempler med Google og i MSDN.

Forørig, er det noen spesiell grunn til at du har valgt VB som språk? Jeg hater personlig den type syntaks, og jeg ville gått over til en syntax som er nærliggende C-familien. Som f.eks C#. Du bruker nøyaktig de samme namespacene, forskjellen er syntax. Vel, og en del andre ting men det trenger du ikke tenke så mye på.
Refleksvest
VivaLatrina's Avatar
Trådstarter
vel, jeg fikk lesing av xml til på en litt skitten måte, ved bruk av streamreader og artist=mid(xmlbuffer.indexOf ("<Artist>")) .... (skyt meg)

checksummen var egentlig bare syntaksfeil, som ikke dukket opp i errorlist

grunnen til at jeg bruker vb, er at det var det jeg fant (jeg tror jeg var 12 eller 13 år gammel når interessen begynte). jeg holder litt på med php for tiden, og har planer om å gå over til cSharp, eller c++ etterhvert.

jeg tror grunnen til at jeg begynte med VB var at det var enkelt å komme i gang. men jeg er enig med deg, det er ikke i samme verden som noe annet.


kildekode postes hvis ønskelig
Sist endret av VivaLatrina; 17. september 2008 kl. 18:01.
Ja, post gjerne kildekoden på pastebin og la den stå der en stund, så kan jeg eventuelt se litt på den og kanskje gi noen pekere og eventuelt vise hvordan det kan se ut i C#.
Refleksvest
VivaLatrina's Avatar
Trådstarter
http://pastebin.com/m71cec7e7


jeg føler meg som microsoft, det er grisete, men det virker (ok da, ikke helt som microsoft)

lets start the flaming

jeg kan legge til at det er til led-skiltet clas ohlson solgte for noen år siden. dem har ikke skiltet nå lenger, men jeg vil tro det er andre skilt som er rimelig like på ebay.


edit: slik ser forresten xml fila ut: http://pastebin.com/m324b81b3
Sist endret av VivaLatrina; 17. september 2008 kl. 19:26.