String überprüfen

ja überwachen aber einen string und keine Datei wie in den Bespielen. Und da ich doch Zugriff auf die Klasse hab muss es ja auch reinschrieben und beim Reinschreiben soll ein Befehl ausgeführt werden.
 
Dann solltest du vielleicht mal genauer erklären, was du da machst und wie was wo ist. Weil zuerst heißt es was von einer Datei, nem Befehl/Tool und jetzt scheint es so zu sein, dass es sich nur um einen Anwendungsinternen String handelt oder so. Also ich persönlich weiß grad nich, was Sache is.
 
ja eshandelt sich auch um einen internen String wie schon in einem Vorherigen Post beschrieben:
Hmm. schade
gibt es den einen listener wenn ein neuer string gemacht wird ?
mit der email war nur ein Bespiel. Ich habe auf die Klasse zugriff. Die String verändert sich sändig sprich neuer Inhalt. Aber ich kann doch bestimmt abfragen ob sich die Strinfst verändert haben mit einer if abfrage oder ?
Dieser schreibt wie mit dem Beispiel der Email immer etwas zu einer bestimmten Zeit in den String. Ich will aber nicht den Email empfang überwachen sondern den String wie geht das ?
 
Also ich persönlich würde dann einen Wrapper drumrum bauen, der dann den String verändern kann, also kein direkter Zugriff mehr auf den String. Der Wrapper feuert dann ein Event (also Eventhandling anschauen, z.B. Observer-Pattern) und an dieses Event können sich dann andere Objekte dranhängen. Dann bekommen die immer mit, wenn sich der String geändert hat. Ich kenn aber die Architektur nicht, mit der du zu tun hast. Kann nämlich sein, dass sich das so nicht anbietet, warum auch immer. Dann fiele mir nur eine Art Pollingsystem ein, das in regelmäßigen Abständen den String überprüft und mit dem alten String vergleicht. Dazu muss der Poller aber natürlich den alten String kennen, also ihn sich irgendwie merken.
 
Hi,

ein kleines Beispiel:

Java:
import java.util.Observable;
import java.util.Observer;

public class Test implements Observer {
	public static void main(String[] args) {
		new Test().runTest();
	}
	
	public void update(Observable o, Object arg) {
		MyString obj = null;
		String event = null;
		
		if(o instanceof MyString) {
			obj = (MyString) o;
			event = (String) arg;
		}
		
		System.err.println("Event: " + event + ", Objekt: " + obj + ", Argument: " + obj.get());
	}
	
	public void runTest() {
		MyString s = new MyString();
		s.addObserver(this);
		
		s.set("abc");
		s.set("foobar");
		s.foo();
		s.set("bla bla bla");
	}
}

class MyString extends Observable {
	public static final String EVENT_SET_CALLED = "SET";
	public static final String EVENT_FOO_CALLED = "FOO";
	
	private String value = "";

	public synchronized void set(String s) {
		value = s;
		setChanged();
		notifyObservers(EVENT_SET_CALLED);
	}
	
	public String get() {
		return value;
	}
	
	public void foo() {
		setChanged();
		notifyObservers(EVENT_FOO_CALLED);
	}
}

Was die setChanged() und notifyObservers() tun, kannst du dir in der Doku nachlesen.
Das obige Beispiel erstellt ein neues String Objekt und führt dann ein paar Methoden davon aus. Bei jedem Methodenaufruf wird die Hauptklasse benachrichtigt und darin die update() ausgeführt.

Grüße,
BK
 
Wieso gibt er mir die Änderungen in Rot aus ?

Und wo füge ich am besten die methoden von dem anderem Programm hinzu in einer neuen Klasse oder wo ?
Und wieso stoppt das Programm und leuft nicht weiter ?
 
Hi fm it,

Anscheinend fehlen dir die absoluten Grundlagen der Sprache...

Wieso gibt er mir die Änderungen in Rot aus ?
Ausgabe der Meldungen auf der Standard-Fehlerausgabe, Zeile 18.

Und wo füge ich am besten die methoden von dem anderem Programm hinzu in einer neuen Klasse oder wo?
Ich weiß / wir wissen immer noch nicht was du genau machen willst. Deine Angaben sind äusserst spärlich, als wäre dein Source-Code streng geheim... Deine Frage lässt sich mit "ist ein Ferrari das richtige Auto für mich?" vergleichen, die lässt sich pauschal nicht beantworten ohne den Zweck davon zu kennen.

Und wieso stoppt das Programm und leuft nicht weiter ?
In Zeile 6 wird eine neue Instanz von Test erstellt und die methode "runTest()" aufgerufen. Sobald diese abgeschlossen ist, wird die main() Methode beendet und somit auch das Programm. In der runTest() wird 2x die set() eines MyString aufgerufen, dann die foo() und abschließend nochmal die set(). Dann ist die Methode beendet und kehrt zurück.

Grüße,
BK
 
Ich programmier noch nicht so lang und kann noch gar nicht die Sprache komplett beherrschen. Der Code ist auch relativ Geheim deswegen will ich ihn hier nicht ausgeben.
Wie kann man verhindern das das Programm stoppt und weiterhin auf eingaben wartet ?
 
Hi,

von komplett hab ich auch nichts gesagt, ich will dich auch nicht beleidigen. Ich habe nur angemerkt, dass dir selbst die Grundlagen fehlen.

http://openbook.galileocomputing.de/javainsel/

Der von mir geschriebene Quelltext ist kein komplettes Programm, es soll nur zur Veranschaulichung dienen. Quasi als Vorlage oder Beispiel wie ich das gemeint habe.

Ich habe weder die Zeit, noch die Lust, mir jetzt alles aus den Fingern zu saugen und auf gut Glück zu hoffen dass du das verwenden kannst. Du hast in dem Thread bereits von mehreren Hilfestellung bekommen. Beschäftige dich mit der Sprache und eigne dir das Grundwissen an. Aller Anfang ist schwer, aber noch schwerer ist es jemanden zu helfen der quasi nichts von der Sprache weiß und auch keinen Quelltext rausgeben will.

Grüße,
BK
 
Zurück