Ich möchte eine odx-f-Datei mit C++ analysieren. Aber ich kann kein einziges Beispiel dafür finden, wie man es analysiert. Ich bin neu auf dieser Seite, können Sie mir bitte helfen, dieses Problem mit Beispielcode zu lösen? Danke im Voraus.Wie odx-f-Datei in cpp zu analysieren
Antwort
odx-f-Dateien, die die Flash-Containerdaten enthalten. Um eine .odx-f-Datei in C++ zu analysieren, können Sie einen beliebigen XML-Parser verwenden (d. H. rapidxml, xerces, LibXML2 mit C++ Wrapper, ...). Im folgenden Beispiel wird rapidxml zum Drucken der SHORT-NAME
aller ECU-MEMS
und ECU-MEM-CONNECTORS
verwendet. Um auf alle anderen Elemente unter ECU-MEM
zuzugreifen, kann der gleiche Mechanismus angepasst werden (hängt davon ab, welche Daten Ihre Anwendung von der .odx-f-Datei benötigt).
#include <iostream>
#include "rapidxml/rapidxml.hpp"
#include "rapidxml/rapidxml_utils.hpp"
int main(int argc, char *argv[]){
rapidxml::xml_document<> doc;
rapidxml::file<> xmlFile("myFile.odx-f");
doc.parse<0>(xmlFile.data());
rapidxml::xml_node<>* flashContainer = doc.first_node("ODX")->first_node("FLASH");
if(flashContainer){
std::cout << flashContainer->first_node("SHORT-NAME")->value() << std::endl; /* prints the shortname of the flash container */
for (rapidxml::xml_node<>* ecuMem = flashContainer->first_node("ECU-MEMS")->first_node("ECU-MEM"); ecuMem; ecuMem = ecuMem->next_sibling("ECU-MEM")) {
/* iterates over all ecu memory descriptors */
std::cout << ecuMem->first_node("SHORT-NAME")->value() << std::endl; /* prints the shortname of the ecu memory descriptor */
}
for (rapidxml::xml_node<>* ecuMemCon = flashContainer->first_node("ECU-MEM-CONNECTORS")->first_node("ECU-MEM-CONNECTOR"); ecuMemCon; ecuMemCon = ecuMemCon->next_sibling("ECU-MEM-CONNECTOR")) {
/* iterates over all ecu memory connectors */
std::cout << ecuMemCon->first_node("SHORT-NAME")->value() << std::endl; /* prints the shortname of the ecu memory connector */
}
}
return 0;
}
Es gibt auch einige Bibliotheken zum Parsen von odx; Normalerweise sind sie teuer, da sie auf kommerzielle Nutzung abzielen, aber es gibt eine Bibliothek, die unter LGPLv2 mit dem Namen ODX-Lib lizenziert ist. Es wird jedoch seit 2014 und in Java nicht aktualisiert (JNI benötigt Zugriff von C++).
- 1. Python in CPP eingebettet: Wie Daten zurück zu CPP
- 2. CPP zu Java Konvertierung
- 3. Wie JsonArray zu analysieren?
- 4. Wie zu analysieren BaseHTTPRequestHandler.path
- 5. Wie realloc in cpp verwenden
- 6. Zwei Fragen zu Gussobjekte in cpp
- 7. Wie man Python (2.7.3) und cpp verbindet
- 8. Wie "zufällige" XML zu analysieren
- 9. Ausdruck analysieren: wie zu tokenisieren
- 10. Wie JSON-Daten in NString zu analysieren?
- 11. Wie JSON in AS3 zu analysieren
- 12. Wie zu analysieren/lesen JSON in PHP
- 13. Array-Liste in XPages wie zu analysieren
- 14. wie LDAP in Ruby-Daten zu analysieren?
- 15. Wie CSV-Dateiwert in SWIFT zu analysieren?
- 16. C: Wie XML in Android zu analysieren?
- 17. Wie XML in PHP zu analysieren?
- 18. Wie HTML in PHP eleganter zu analysieren?
- 19. Wie XML-Datei in Lua zu analysieren?
- 20. Wie wit.ai Antwort in Python zu analysieren
- 21. Wie in einem Fragment zu analysieren?
- 22. Wie untypisierte Puffer in GDB zu analysieren
- 23. Wie fehlerhafte HTML in Python zu analysieren
- 24. Wie JSON Antwort in Javascript zu analysieren?
- 25. Wie zu analysieren. DAQ-Datei?
- 26. Java: Wie String zu analysieren?
- 27. android wie zu analysieren json
- 28. Refactoring Qt Quick Cpp-Klasse in Header und .cpp
- 29. Wie Zeitstempel zu Unix-Zeit zu analysieren?
- 30. Messfunktionen Speichernutzung in cpp
Lesen/lernen Sie die Dateiformatspezifikation und parsen Sie entsprechend. Alle Dateien sind Array von Bytes. Die Formatspezifikation erklärt, was diese Bytes bedeuten. Oder verwenden Sie Bibliotheken von Drittanbietern, die diese Aufgabe für Sie übernehmen. – Ron
ist das odx Datei Parser in cpp verfügbar? – Rajeev
können Sie bitte vorschlagen, eine dritte Partei lib für mich, dies zu tun – Rajeev