# Chat auslesen



## Ch!zZzL@ (13. Nov 2009)

Hallo Java Entwickler, 

ich schreibe im Moment ein kleines Tool für mich selbst. 

Dieses Tool soll einen Chat auf einer (Flash)-Webseite auslesen (meine bisherige Idee: Robot-Klasse -> reinklicken, alles markieren, kopieren und aus einem Clipboard holen). Soweit funktioniert das ganze auch ganz gut. Desweiteren wird der Chat jede 10 Sekunden ausgelesen. 
Was ich nun ganz gerne hätte ist, wie kann ich am besten feststellen was ich bereits ausgelesen habe? 

z.B.

Beim ersten einlesen lese ich den String myFirstString= "bla bla bla \n blup blup blup \n bla bla bla \n grr grr grr" und beim zweiten lesen ich den String mySecondString = "blup blup blup \n bla bla bla \n grr grr grr \n bla bla bla \n grr grr grr".

Wie kann ich am effezientesten feststellen dass der zweite String die neuen Zeilen "bla bla bla \n grr grr grr" enthält?

Ich hoffe meine Frage ist einigermaßen deutlich geworden! 

P.S.: Falls jemand eine bessere Idee hat, wie man einen Flash-Chat auslesen kann, würde ich mich freuen diese zu hören!


----------



## bygones (13. Nov 2009)

alle bisherigen strings speichern und ueber contains die Strings dann abfragen bzw ueber patternmatching


----------



## Ch!zZzL@ (13. Nov 2009)

bygones hat gesagt.:


> alle bisherigen strings speichern und ueber contains die Strings dann abfragen bzw ueber patternmatching



Ich wollte es vermeiden alle möglichen strings zu speichern und contains kann ich doch nur benutzen wenn ein string komplett in einem anderem string drin ist. In meinem Fall ist es eher eine Schnittmenge die die beiden Strings verbindet! 

Weitere Vorschläge? ???:L


----------



## LostInSpace (19. Feb 2010)

Ist das noch aktuell? Man kann das auch so lösen:


```
//Der schon vorhandene String
String firstString = "ASD FOO ASE BAR";

//Der neu eingelesene String mit den gleichen Teilen "ASE" und "BAR"
String secondString = "ASE BAR LOL ROFL MAO";

//Regulären Ausdruck für den bereits vorhandenen String erstellen:
//(ASD )*(FOO )*(ASE )*(BAR).*
String regex = "(" + firstString.replace(" ", " )*(") + ").*";

//Pattern erstellen
Pattern p1 = Pattern.compile(regex);

//Mit zweiten String matchen
Matcher matcher = p1.matcher(secondString);
```


----------



## Ch!zZzL@ (19. Feb 2010)

Danke für deinen Vorschlag ich habe es mittlerweile so oder so ähnlich gelöst! Ich habe dabei eine Gewisse Symmetrie in dem Text ausgenutzt dieser wurde in Bereiche unterteilt wobei jeder Bereich eine Identifikationsnummer hatte, das war dann mein Patter nach dem ich dann gesucht habe! 

Danke dir trotzdem! 



LostInSpace hat gesagt.:


> Ist das noch aktuell? Man kann das auch so lösen:
> 
> 
> ```
> ...


----------

