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/aspdecoffeehouse.asp

Antwort per Email an