Thread 2 Arrays abwechselnd miteinander "verbinden"
(12 answers)
Opened by Ensretted at 2008-07-23 17:09
Yep Linuxer,
da geb ich dir voll Recht mit dem Sinn / Mehrwert. Es ist nur so, dass eine Schleife ewig braucht und nur einen Teil zu filtern braucht, während die Verarbeitung der gefundenen Zeilen relativ aufwendig ist. Und wenn man solche Funktionen wie grep o.ä. nutzen kann.... (lt. Buch(1): "..die Kurzform ist ...effizienter und bequemer." ) Aber vlt. ist es besser die gesamte Problemstellung aufzuzeigen: kleiner Auszug einer Textdatei: 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 00 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 00 00 00 04 03 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 54 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 54 00 46 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 55 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 55 00 46 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 50 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 50 07 1D 00 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 51 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 51 08 12 00 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 53 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 53 08 0B 00 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 11 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 11 30 33 37 35 34 35 33 34 33 32 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 21 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 62 F1 21 32 31 32 34 34 32 32 33 33 32 00 BAPI_RSLT_REQ_ISOMSG [TESTER] 22 F1 31 20 BAPI_RSLT_RESP_ISOMSG [HSCAN_UDS_500;RDU_212.RDU_212_000004_not_released] 7F 22 31 Es geht nun darum, immer Paare von Anfrage und Antwort zu extrahieren. Die Datei kann bis zu 2GB gross sein! Die Datei enthält auch noch andere Zeilen, welche (erstmal) nicht von Bedeutung sind, aber von ihrer Anzahl wesentlich grösser sind, als die 00/20er Paare. Die Paare korrelieren (hoffe das ist der richtige Ausdruck ;-) ), d.h. sind immer paarweise zu betrachten: Anfrage-Antwort. Die Anfrage ist immer an der selben Stelle zu suchen/finden. (es interessieren nur die Zahlenwerte nach [Tester]) Die Antworten(Zahlenwerte) beginnen immer nach ']', wobei diese Position veränderlich ist. Ziel ist es nun, möglichst schnell !, alle Paare zu finden, die Zahlenwerte zu extrahieren(Hex) und paarweise wieder zu verknüpfen, damit eine Anzeige in MS Ex..l erfolgen kann. (Ja wir verwenden MS ..;-) ) In VBA würde ich sowas mit $Instr(..) machen - Perl substr(..) Das ist schon klar, aber wie gesagt eine Schleife ...ungern. Hoffe, das Problem ist nun klar...und vielen Dank, dass ihr euch für mich Zeit nehmt. Gruss Ens (1): Einführung in Perl, O'Reilly, R. L. Schwartz, T. Phoenix, B. d Foy |