Hallo Benne,
erstmal Danke für Deine Antwort.
Ich habe das Problem ähnlich gelöst, wie Du angegeben hast und die Token etwas modifiziert.
Ich dachte nur, es gibt eine "Parser"-Logik, die das Problem effizienter lösen kann, die ich nur anpassen muss.
Ich habe hier jeweils einen kleinen Ausschnitt der Dateien wiedergegeben, die miteinander verglichen werden müssen, damit Du eine Vorstellung von meinem Pronlem bekommst.
Anforderung (Größe 93 KB):
4/0[1]V00:V99[2][3]G09:G11,F04,G02,G07,G13,H04,I02,I06,I21,I25,I41,I45,O60,O62[_
4]1:24[5][6][7][8]2:3,5:6[9][10][1-][2-]
5/0[1]T00:T99,V00:V99[2][3]I01:I09,I20:I28,I40:I51,B01,B06,H01,O60[4]1:9[5]>_
=75.000[6][7]1:5[8]2:3,5:6[9][10][1-][2-]
9/0[1]O00:O99,S00:S99[2][3]G01:G04,O06:O09,O33:O35,O72:O73,W01:W03,B01,B05,F01,_
F02,H01,O01,O05,O60,O70[4]0:4[5]>=200.0
649/1[1]N13,N20,W[2][3]I05:I06,O45:O48,B01,B06,( _
B03|-O30,-O31,-O32,-O33),F01,G01,G14,I02,O20,O60,S01,W02[4][5][6][7][8][9][10][_
1-][2-] Es geht um die Token, die [3] folgen.
Zu vergleichen (Größe 7.916 KB):
37211/[1]V02[2]6900[3]F11[4]-4[5]1100000[6]NEUBAU WOHNHAUSANLAGE MIT 7 _
WOHNUNGEN, LIFT UND TIEFGARAGE, DACHTERRASSEN [7]1[8]4[9]HEIZART: _
GASHEIZUNG DACHFORM: FLACHDACH[10]1,2,4,8
37212/[1]N10[2]3153[3]A01,A07,O71,W01[4]43[5]0[6]NEUBAU MEHRZWECKHALLE (DETAILS _
BEI PLANUNGSBEGINN) [7]1[8]1[9][10]1
37213/[1]T02[2]6121[3]F01[4]2[5]1800000[6]NEUBAU WOHNANLAGE BESTEHEND AUS 1 Da dieses sehr lange dauert (einige Stunden), muss das Problem so effizient wie möglich gelöst werden.
Die Logik der Token habe ich verbrochen, aber ich denke, das muss so sein:
- Es gibt "normale" Token, das sind die ohne besondere Sonderzeichen Beispiel: A01,B01,...
- Es gibt Token "Von" - Bis", das sind die Token mit einem Doppelpunkt als Trenner (kein Minus, da dies wo anders vorkommt) Beispiel: A01:A10,...
- Es gibt Token, die bestimmte Inhalte haben müssen und andere nicht haben dürfen (bzw. beide haben müssen), das sind die Token eingeschlossen in Klammern und getrennt durch ein Pipe-Zeichen, diese können links oder rechts ein Minus haben Beispiel A01,A03|-C01-C05),...
Erklärung des letzten Beispiels:
Es darf weder C01 noch C05 vorhanden sein, aber A01 ODER A03 vorhanden sein um den Vergleich positiv abzuschliessen.
- Alle diese Token können bunt gemischt sein.
Liebe Grüße
vbfranz |