c# In HEX zeichenfolge dinge ersetzen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • c# In HEX zeichenfolge dinge ersetzen

      Hallö,

      momentan hab ich das problem, dass ich einen string in einer Textbox aus einer rom habe (bspw. 00 00 80 08 55 66 6A A7) und dort möchte ich alle Offseteinträge, die dort gefunden werden ersetzen. Das Problem ist jetzt, dass die aufgabe parallel stattfinden muss, da mehrere Einträge überprüft werden sollen. Hat jmd einen ansatz / eine idee?

      Lg
      PTTV
      Pokémon spielen auf einem höheren Level.


      Links zu meiner Person:

      Youtube
      Facebook Twitter
    • Hast du eine Zeichenkette oder eine Bytecollection / Stream? In ersterem Fall würde ich einfach mit RegEx oder RegEx implementationen Arbeiten (Dazu siehe system.text.regularexpressions) in zweiterem Fall kannst du ja einfach im Byte Array nach den einzelnen Vorkommen suchen und diese dann ersetzen. Wie man das halbwegs schnell hinbekommt siehe z.B. hier:

      Quellcode

      1. public static List<int> IndexOfSequence(this byte[] buffer, byte[] pattern, int startIndex)
      2. {
      3. List<int> positions = new List<int>();
      4. int i = Array.IndexOf(buffer, pattern[0], startIndex);
      5. while (i >= 0 && i <= buffer.Length - pattern.Length)
      6. {
      7. byte[] segment = new byte[pattern.Length];
      8. Buffer.BlockCopy(buffer, i, segment, 0, pattern.Length);
      9. if (segment.SequenceEqual(pattern))
      10. positions.Add(i);
      11. i = Array.IndexOf(buffer, pattern[0], i + pattern.Length);
      12. }
      13. return positions;
      14. }
      Alles anzeigen


      Ich würde davon abraten sowas als Zeichenfolge zu betrachten, weil du dir damit nur einen unnötigen Konvertierungsschritt und somit Komplexität einarbeitest. Wenn es um die Anzeige in einer Textbox geht würde ich intern mit Bytefolgen arbeiten und nur visuell strings verwenden.

      ~Sturmvogel
    • Es wäre wohl hilfreich zu beschreiben was deine aktuelle Situation ist und wie dein Lösungsversuch aussieht. Grundsätzlich würde ich den string nicht extra in ein Array umwandeln, du kannst ja auch gleich mit der bytefolge arbeiten. Und wenn du den string gegeben hast als input etc. und später ein byte array brauchst bist du wsl. auch schneller wenn du es in ein array wandelst, aber in ein array und dann wieder zurück macht keinen Sinn.

      ~Sturmvogel