Hallo Wolfgang, Du hast noch zu wenige Informationen gegeben...
Was willst Du eigentlich zum Schluss haben? Alle Positionen aller gemeinsamen String oder Anzahl und L�ngen derselben oder die Anzahl der Zeichen, die die gleichen Bl�cke ausmachen oder was? Suchst Du nur 10er-Bl�cke oder sollten die Bl�cke m�glichst maximale L�nge haben? Gibt es irgendwelche Bedingungen, die man ausnutzen kann? Ist es z.B. so, dass gleiche Teile immer in der gleichen Reihenfolge vorkommen, das w�rde z.B. heisen, dass man z.B. wenn man in beiden Texten ungef�hr in der Mitte eine gleiche Textpassage hat und man sucht jetzt weiter, dann kann man den ersten Teil der beiden Texte ignorieren.. Ansonsten kannst Du ja mal schauen was VB bringt... Das d�rfte keine grosse Umstellung darstellen.. Ich weiss auch nicht welchen Algorithmus VB(S) f�r Instr verwendet. Unter Umst�nden lohnt sich eine eigene Implementierung. Siehe Boyer-Moore: http://www.google.de/search?q=boyer+moore&hl=de&meta= Darf man fragen wass Du genau vorhast? Willst Du Plagiate finden? Kopierte Hausaufgeben o.�.? Unter Umst�nden bietet es sich da an andere Algorithmen zu verwenden, z.B. eine Untersuchung der Worth�ufigkeiten seltener Worte o.�. Claudius > > Nachrichtim cooffehouse ist die frage glaub ich ganz gut aufgehoben ;) > > hi. und f�r alle gl�cklichen sch�nes wochenende. > > meine frage ist eher genereller natur. programmiersprache ist dabei > eigentlich egal. hauptsache es geht zum schlu� irgendwie. > > ich habe 2 texte(immer so ca. 2mb gro�), die sich nur in > kleineren teilen > unterscheiden. > nun muss ich schnellstm�glich(und daran h�nge ich*g*) > herausfinden, wann ein > teil(mit einer mindestl�nge von 10stellen) der des textes2 im text1 > vorkommt. > > grunds�tzlich funktionierts mit vbscript. ich habe nur ein > problem mit der > geschwindigkeit, und kanns nicht mehr viel optimieren(glaub ich). > > bsp: > text1 = "Hallo Welt, das ist ein gaaanz langer Text." > text2 = "Hallo Welt, das war mal ein gaaanz langer Text." > > ich finde auf anhieb und sehr schnell, dass "Hallo Welt, das > " in beiden > dateien vorkommt(die stelle, an der es vorkommt ist eigentlich auch > irrelevant) > > dann suche ich (von dieser stelle ausgehend=filePos) nach dem > mindestvorkommen(10) in einer schleife. > > i=1 > Do While InStr(1, text1, Mid(text2, filePos + i, 10)) = 0 > 'mach solange du > nichts findest > i = i + 1 > Loop > > > > (der �bersicht halber habe ich alle kontrollen(zb dateiende) > rausgenommen) > diese schleife ist aber sehr langsam. > optimierungsm�glichkeiten finde ich > keine, da ich ja kein byte auslassen will. > > wenn er was gefunden hat, merk ich mir das, und mach an dieser stelle > weiter, den gr��tm�glichen block an gleichen daten > herauszufinden.(usw.). es > funktioniert. es ist prima. aber bei 1,2mb-dateien, die > leider auch nur > wenig gemeinsam haben, brauchst 25 minuten. eindeutig zu langsam. > > nun. die mutter aller fragen: wie gehts besser/anders ;) > > wie gesagt. eine andere programmiersprache(im rahmen > gehalten, also nicht > unbedingt asm*g*) ist auch ok. hauptsache es wird schneller. > > andere l�sungsvorschl�ge sind nat. auch willkommen. > > wolfgang > http://www.vbwelt.de/ > > > | [aspdecoffeehouse] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv > | Sie k�nnen sich unter folgender URL an- und abmelden: > | > http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffee house.asp | [aspdecoffeehouse] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp
