Fragen wegen ASCII

  • Guten Tag..

    Ich wollte mal fragen, gibt es eig eine Lösung oder ein UDF um in AutoIT einen Ascii Code auf einem Text zu bekommen...

    Also einen text in ein Ascii Code umwandeln..

    Zitat

    EIN BEISPIEL:
    Das Wort: google.com hat den ASCII Code von 676f6f676c652e636f6d

    Gibts da was??

    MFG TheBeatMaker111

  • BiNu Die Ausgabe ist bereits hexadezimal... Mal im Vergleich:

    Ausgabe meines Scripts:

    Code
    0x676F6F676C652E636F6D


    Ausgabe deines Scripts:

    Code
    676F6F676C652E636F6D


    :huh:
    Im Grunde hast du nur den Binärstring im Hexformat zu einem String umgewandel. Was den gleichen Effekt hat wie das 0x von meinem zu entfernen :wacko: .


  • :huh:
    Im Grunde hast du nur den Binärstring im Hexformat zu einem String umgewandel. Was den gleichen Effekt hat wie das 0x von meinem zu entfernen :wacko: .

    Dass ist mir durchaus klar aber er wollte doch von google.com

    Zitat

    den ASCII Code

    da gehört das 0x aber nicht dazu. :P
    Gibt natürlich auch andere Wege dass wegzubekommen eventuell auch sinnvollere.

    Da fällt mir auf was er eigentlich suchte war

    [autoit]

    ConsoleWrite(StringLower(Hex(StringToBinary("google.com"))) & @CRLF)

    [/autoit]


    :rofl:

  • Da fällt mir auf was er eigentlich suchte war

    [autoit]

    ConsoleWrite(StringLower(Hex(StringToBinary("google.com"))) & @CRLF)

    [/autoit]


    :rofl:


    Wenn du Hex durch StringTrimLeft ersetzt vielleicht. Oder willst du mit Absicht unnötige Funktionen einbauen (mal abgesehen davon, dass Hex eigentlich nur für das Umwandeln von Zahlen gedacht ist)?

  • Ui, geht's um unnötige Funktionen einbauen?

    [autoit]


    Func _StringGetBinary($sString)
    Local $aASCII, $sReturn
    $aASCII = StringToASCIIArray($sString)
    For $i = 0 To UBound($aASCII) - 1
    $sReturn &= Hex($aASCII[$i], 2)
    Next
    Return $sReturn
    EndFunc

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

    ConsoleWrite(_StringGetBinary("google.com") & @CRLF)

    [/autoit]

    Spaß bei Seite: name22s Lösung ist die einfachste und wahrscheinlich auch effektivste. Da brauchst du kein Hex mehr. ^^

    lg

  • BiNu Bitte behaupte nicht, das "0x" gehört da nicht dazu, wenn du weder weißt wofür die Funktion Hex normalerweise gedacht ist, noch was ein ASCII Code ist.
    Abgesehen davon ist das kein ASCII sondern die Hexadezimalzahl eines Strings im ISO 8859 Format, aber es kommt für ihn auf das gleiche raus :whistling: ... Chesstigers Funktion kodiert tatsächlich ASCII. ;)

    • Offizieller Beitrag

    0x zeigt dem compiler, dass es sich um einen binären wert handelt. Hex ist hier schon richtig angewendet und die schönste Variante, weil es ein Binären Wert in ein Hex String umwandelt, steht sogar in der Hilfe:

    Zitat

    Returns a string representation of an integer or of a binary type converted to hexadecimal.

    Und ich glaube die Funktion _StringToHex ist mittlerweile auch so aufgebaut. ( Hex(BinarytoString($str)) )

    Gruß,
    Spider

  • BiNu Bitte behaupte nicht, das "0x" gehört da nicht dazu, wenn du weder weißt wofür die Funktion Hex normalerweise gedacht ist, noch was ein ASCII Code ist.
    Abgesehen davon ist das kein ASCII sondern die Hexadezimalzahl eines Strings im ISO 8859 Format, aber es kommt für ihn auf das gleiche raus :whistling: ... Chesstigers Funktion kodiert tatsächlich ASCII. ;)


    8| Brauchst dich doch gar nicht rechtfertigen niemand hat deine vorgeschlagene Lösung kritisiert geschweige denn dich als User. Also immer schön Sachlich bleiben.

    Das Präfix "0x" bedeutet das der folgende Wert hexadezimal zu interpretieren ist. Hat mit ASCII erst mal gar nichts zu tun.

    Wofür die Funktion Hex() ist braucht man nicht zu diskutieren. Steht in der Hilfe. Was jedoch nicht ausschliessen würde, sie auch für etwas anderes zu brauchen, wenn sie denn genau dass machen würde was man gerade gebrauchen könnte.

    Richtig das ausgegebene ist kein ASCII es ist aber dass was OP suchte.

    Zitat

    Chesstigers Funktion kodiert tatsächlich ASCII


    Darüber liesse sich jetzt streiten.

    Übrigens in einer ASCII-Tabelle gibt es meinst keine spalte "ASCII" und wenn doch wäre sie wohl am ehesten die spalte "Chr" oder "Symbol" nicht die spalte "Hex".

  • Was heißt, darüber ließe sich streiten?
    Meine Funktion nimmt das Äquivalent zu den Zeichen aus dem ASCII.
    Was soll daran nicht ASCII sein?

    Weiterhin: Klar heißt "0x", dass die folgende Zeichenkette eine Hexadezimalzahl darstellt. Ich weiß auch garnicht, wo gerade der Streitpunkt liegt...
    names Variante spuckt letztendlich reine Binärdaten (-> Integer, würde ich vermuten) aus, die AutoIt automatisch im Hexadezimalformat darstellt (Also mit 0x).
    Du castest das ganze allerdings noch zu einer reinen Zeichenkette. Durch AutoIt und Variant macht das praktisch keinen Unterschied, allerdings...
    Wenn name den Binärstring 0xAB hat, liegt er als dezimal 171 bzw. binär 10101011 im Speicher. Bei deiner Variante aber stehen im Speicher die beiden Werte für die Zeichen A und B, also 65 und 66: 1000001 1000010.

    Ich hoffe, der Unterschied ist jetzt klar.

    Deine Variante, BiNu, ist eigentlich die richtige. Durch die Eigenschaften von AutoIt aber ist das einfach unnötig, weshalb man frohen Herzens die Lösung von name22 nutzen kann.

    lg