3 Stimmen

VBA Schnellste Weg, um eine 40mb xml-Datei zu suchen oder konvertieren Sie ein binäres Array dieser Datei zu String für die Suche

Guten Tag, Ich habe VBA hinter MS Access laufen. Ich muss wiederholt Daten aus einer 40 MB großen Datei suchen und abrufen. Sie ist zu groß, um sie in eine String-Variable zu laden. Ich habe es in ein binäres Array geladen (ziemlich flott, könnte ich hinzufügen), aber ich bin ratlos, wie ich dieses Format nutzen kann.....Ich kann nicht scheinen, Schleife durch das Array ein Byte zu einer Zeit auf der Suche nach einer Zeichenfolge zu begreifen...... Also habe ich diese Idee verworfen... (aber ich bin bereit, zu lernen, wie man diese Strategie zu nutzen)... Ich bin auf FilesystemObject-basierte Suche; hier ist, was ich so weit haben:

Ich erhalte den Anfang (x) und das Ende (y) des Knotens und setze sie dann in die FLat-Variable.

 Set ts = FSO.OpenTextFile(DLookup("gsgtver", "Eramdat", "EramID = 1"), ForReading, False, TristateFalse)
 x = InStr(1, ts.ReadAll, ">" & sFirst & "<")

 ts.Close

 Set ts = FSO.OpenTextFile(DLookup("gsgtver", "Eramdat", "EramID = 1"), ForReading, False, TristateFalse)
 y = InStr(x, ts.ReadAll, "</FixRecord")

 ts.Close

 Set ts = FSO.OpenTextFile(DLookup("gsgtver", "Eramdat", "EramID = 1"), ForReading, False, TristateFalse)
 FLat = Mid(ts.ReadAll, x, y - x)

 ts.Close

Wenn ich das nicht 10 bis 120 Mal machen müsste, würde ich es als "akzeptablen Wartezustand" abtun, aber wie Sie sich denken können, ist das nicht akzeptabel. Irgendwelche Vorschläge, wie man das geschickter machen kann?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X