tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
23776
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fireball1982 Fireball1982 ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    24
    Hallo,
    ich versuche gerade einen String der in Ascii steht in Hex umzuwandeln, kann mir jemand helfen? Gibt es da einen speziellen Befehl? mit Ascii Encoding kann ich ja nur in Ascii umwandeln, oder?
    danke
     

  2. #2
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hi.

    Da du ein wenig komisch geschrieben hast, frag ich besser nochmal nach.

    Du hast also eine HEX-Zahl in einer String-Variable, und willst einen Zahlentyp haben?

    Wenn ja, machs so:

    Code :
    1
    
    int myInt = int.Parse(hex, System.Globalization.NumberStyles.HexNumber);

    Ist C# schreibweise, in VB.net wirds wohl bissl anders aussehen.

    MfG,
    Alex
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  3. #3
    Fireball1982 Fireball1982 ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    24
    ok, war bissle komisch geschrieben, also nochmal:
    Ich bekomme einen String zugesendet, der Hexadezimalzahlen enthält, z.B.
    (6B 4A 32 ...)
    Aus diesem String möchte ich 4 bestimmte Zahlen auslesen und sie als Ascii Zeichen darstellen.
    Hier z.B. wenn ich die ersten 2 Zeichen haben wollte, möchte ich sie dann als (k J) darstellen.
    Wie kann ich deutlich machen, dass der String Hexadeizimazahlen enthält?
    Und wie kann ich sie dann in Ascii umwandeln?

    Danke Fireball
     

  4. #4
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Das rauslesen der 2 Zeichen kannst mit Substring machen, oder wenn die Paare immer durch ein Leerzeichen getrennt sind, kannst auch die Split-Methode drauf anwenden.

    Dann wandelst du diese Substrings mit der von mir gezeigten Methode in einen Integer um, wobei ein Byte auch ausreichen würde - aber egal, diesen ganzzahligen Wert kannst du dann in einen char casten.

    Code :
    1
    2
    3
    4
    5
    6
    
    Dim input As String = "6B 4A 32"
    Dim sub  As String = input.Substring(0,2)
     
    Dim num_val As Byte = byte.Parse(sub, System.Globalization.NumberStyles.HexNumber)
     
    Dim aChar as Char = (char) sub

    So in die Richtung wirds dann aussehen.
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  5. #5
    Fireball1982 Fireball1982 ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    24
    Danke, werds mal ausprobieren
     

  6. #6
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    netter Post...


    Wenn auch ein bisschen später, ich habe bisher nichts sinnvolles gefunden,
    aber wie würe der umgekehrte Weg funktionieren?

    Ich habe eine Oberfläche, die Werte umkonvertiert...

    Also in / von HEX, DEZIMAL und BINÄR
    Nun soll auch noch Ascii dazukommen...

    Da ich leider keine Methoden für die umwandlungen gekannt habe,
    habe ich bisher einfach alles selbst berechnet, also mit "%2" und so weiter gearbeitet

    Jedoch, wie kann ich nun diese Werte (binär oder Dezimal oder hex) nun in Ascii umwandeln?

    Ich kenne zwar die Tabelle, aber ich möchte nicht alles einzeln umkovertieren müssen 'ala :
    // Pseudocode
    Code cpp:
    1
    2
    3
    4
    5
    
    ...
    case 65:
     return 'A'
     break;
    ...

    Gibts dafür etwas hilfreiches? Bitte Hilfe

    PS: Ich arbeite mit VC++.NET VS2005
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  7. #7
    rusarku rusarku ist offline Grünschnabel
    Registriert seit
    Sep 2006
    Beiträge
    1
    @the incredible Leitman

    man kann die Tabelle etwas verkürzen, da diese mit der Ausnahme einer Unterbrechung linear verläuf (gilt für alle Zahlensysteme deren Basis kleiner 37 ist):

    (C#-Syntax)

    private char GetChar(int value)
    {
    if (value > 9)
    return (char)(value + 55);
    else
    return (char)(value + 48);
    }
     

  8. #8
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    hehe, du hast eben auf einen über eineinhalb Jahre alten Post von mir geantwortet xD

    Trotzdem Danke
    (btw, du kannst Code Tags verwenden z.B.: "[.code]hier der code[./code]", ohne die Punkte)


    Dennoch werd ich mal posten, wie ichs dann letzendlich gemacht habe und wie es meiner Meinung nach am sinnvollsten ist

    Code :
    1
    2
    3
    4
    5
    
    // code in vc++.net
    int intValue;
    System::String ^text = Char::ConvertFromUtf32(intValue);
     
    intValue = Char::ConvertToUtf32(text, 0);
    HINWEIS: Pseudo Code, übernehme keine Garantie für die Richtigkeit der Methoden, bitte für nähere Information die Sufu oder verwenden


    PS: Gz zu deinem ersten Post hier und willkommen
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

Ähnliche Themen

  1. Integerwert in ASCII Zeichen umwandeln
    Von Faliln im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 17.06.10, 12:28
  2. ASCII-Code in entsprechendes Zeichen umwandeln
    Von FunkyMonkey im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 22.08.07, 20:37
  3. C++ ASCII Code in ein Zeichen umwandeln
    Von HansJ im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 24.11.05, 09:59
  4. Antworten: 2
    Letzter Beitrag: 01.08.05, 12:57
  5. Ascii Zeichen Umwandeln
    Von lernen.2007 im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 07.04.05, 14:45