int -> char

  • Hey, ich habe das Problem, dass ich 2 Integers nicht zu einer Zeichenkette zusammen gesetzt bekomme...
    Die Skripte sind hier zu finden: [ offen ] exe weiter laufen lassen und erneut mit Parametern aufrufen

    Mittlerweile hat mich das ganze so gefesselt, dass ich unbedingt eine Lösung dafür haben muss.
    Ich komme aber nicht weiter... Egal was ich versuche, es wird einfach keine Zeichenkette daraus...

    Hier mal ein Vergleich:

    Spoiler anzeigen
    [autoit]

    Global $tagStruct[2] = ['int; int; int', 'char[11]'], _
    $tStruct[2]

    [/autoit] [autoit][/autoit] [autoit]

    $tStruct[0] = DllStructCreate($tagStruct[0])
    DllStructSetData($tStruct[0], 1, 0x656b614d) ; ekaM
    DllStructSetData($tStruct[0], 2, 0x6172472d) ; arG-
    DllStructSetData($tStruct[0], 3, 0x006b6966) ; kif

    [/autoit] [autoit][/autoit] [autoit]

    $tStruct[1] = DllStructCreate($tagStruct[1], DllStructGetPtr($tStruct[0]))
    ConsoleWrite(@CRLF & DllStructGetData($tStruct[1], 1) & @CRLF & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $tagStruct = ''
    $tStruct = ''

    [/autoit]

    Hier funktioniert das ganze ohne Probleme. Aber da lasse ich ja auch AutoIt die Arbeit erledigen...
    Nun ja, weiß jemand wie ich aus 2 Integers eine Zeichenkette zusammen gesetzt bekomme?

    Würde mich über jede Antwort freuen. Vielen Dank!

    Einmal editiert, zuletzt von Yjuq (11. März 2013 um 20:34)

  • Hi,

    so etwa?

    [autoit]

    $struct_int=dllstructcreate("int;int")
    dllstructsetdata($struct_int,1,1145128260) ;wandle die "integer"-Zahlen mal in 0x..... um, und schau dir dann die ascii-tabelle in der Hilfe an
    dllstructsetdata($struct_int,2,1178944834) ;vor weiteren Fragen nach little/big endian googeln ^^

    [/autoit][autoit][/autoit][autoit]

    $struct_char=dllstructcreate("char[8]",dllstructgetptr($struct_int))

    [/autoit][autoit][/autoit][autoit]

    $char=dllstructgetdata($struct_char,1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $char = ' & $char & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Vielen herzlichen dank lieber Märchenonkel!
    Du hast mir kein Stück weitergeholfen... ^^

    Okey, entweder hast du nicht kapiert was ich will oder ich habe es falsch erklärt...
    Vermutlich ist Punkt 1 die Konsiquenz aus Punkt 2! ^^

    Ja, das selbe habe ich doch hier im Thread (im Spoiler das Script) gemacht.
    Nur halb direkt die Hex Zahlen (zur besseren übersicht der ASCII Tabelle willen) eingesetzt.
    Intern werden sie aber als Integer angesehen.

    Es geht mir aber um die verlinkten Skripte.
    Dort verwende ich die Pointer.au3 und rätsel immernoch wie man die Integers nun zusammen setzt...

    Ist ein bischen schwer zu erklären ^^