In "Hex-Datei" suchen



  • Hallo,

    ich habe eine Datei, dies sieht mit einem Hex Editor betrachtet wie folgt aus z.B.:

    ... 00 00 16 E3 B0 B3 A0 A2 00 29 02 00 3F 11 2D 00 09 F3 BC 00 49 36 40 FF FB FF FB FF FB 04 0D 02 ...

    Nun möchte ich in der Datei nach allen Daten mit A0 A2 suchen. und dann diesen Datensatz bis zum nächsten A0 A2 in einem String abspeichern und danach den nächsten Datensatz usw....

    ... 00 00 16 E3 B0 B3 A0 A2 00 29 02 00 3F 11 2D 00 09 F3 BC 00 49 36 40 FF FB FF FB FF FB 04 0D 02 ...

    Wie ist das möglich?

    Danke schon einmal für die Hilfe.

    (C++ unter XP mit Dev-C++)



  • So wie du es beschrieben hast hört es sichgut an. Wo ist das Problem?



  • std::ifstream f ("datei", ios::binary);
    
    std::vector<std::string> v;
    
    std::string current;
    
    while (f)
    {
        while (f.get () != 0xa0)
            ;
        if (f.get () != 0xa2)
            continue;
    
        while (f)
        {
            char c;
            f.get (c);
            if (c != 0xa0)
                current += c;
            else
            {
                char d;
                f.get (d);
                if (d != 0xa2)
                    current += 0xa2 += d;
                else
                {
                    v.push_back (current);
                    current = "";
                    break;
                }
            }
        }
    }
    

    Igitt. Hässlicher Code. Aber er sollte es tun 😉


Log in to reply