kunst-illustration-web...
Fietse Nowitzki

"Jede wahre Kunst ist geistig, welchen Gegenstand sie auch darstellen mag." Piet Mondrian(1872-1944)

 

"Kunst=Mensch=Kreativität=Freiheit" Joseph Beuys(1921-1986)
"Das Äußere der Kunstform ist ihr Inneres" August Macke(1887-1914)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<title>LasstUnsDarueberReden</title>

// MODULE: LUDR header
/** */

// @@UserEntry
import java.applet.*;
import java.awt.*;
import java.io.*;
// @@End

public class LUDR extends Applet{

/**Button zum Aufruf des Dialoges.*/

private Button bKMPSuche = new Button("Programm starten");

/**Initialisierung des Applets.*/

public void init () {
add(bLUDRSuche);
}


/**Abarbeitung der Events*/

public boolean handleEvent (Event evt) {
switch (evt.id) {
case Event.ACTION_EVENT: {
if (evt.target==bLUDRSuche) {
KMPFrame kmpFrame=new LUDRFrame();
return true;
}
}
default: {
break;
}
}
return false;
}

}


class LUDRFrame extends Frame{
private boolean bFileIn = false;
private Panel pPanel1 = new Panel();
private Panel pPanel2 = new Panel();
private Panel pPanel3 = new Panel();
private Panel pPanel4 = new Panel();

/**Nimmt die Frage entgegen.*/

private TextField tTextfeld = new TextField("Fragestring",30);
private TextField tDateiLabel = new TextField("Keine Antwort gewaehlt",40);

/**Ein Statusfeld, das den aktuellen Status anzeigt.*/

private TextField tStatus = new TextField("Noch keine Einigung",40);

/**Label, der anzeigt, ob der Fragestring in der Datei gefunden werden \\
konnte.*/

private TextField tGefunden = new TextField("Noch keine Suche gestartet",40);
private Button bDateiButton = new Button("Dateiwahl");

/**Button um die Antwort anzustossen.*/

private Button bSuchen = new Button("Antwort starten");

/**Button, um den Dialog zu schliessen.*/

private Button bStreitBeenden = new Button("Streit beenden");

/**String der zu durchsuchenden Datei.*/

private String strDatei = null;

/**Konstruktor.*/

LUDRFrame () {
this.setTitle("LasstUnsDarueberReden");
this.setLayout(new GridLayout(5,1));
pPanel1.setLayout(new FlowLayout(FlowLayout.LEFT));
pPanel2.setLayout(new FlowLayout(FlowLayout.LEFT));
pPanel3.setLayout(new FlowLayout(FlowLayout.LEFT));
pPanel4.setLayout(new FlowLayout(FlowLayout.LEFT));

pPanel1.add(new Label("Fragestring: "));
pPanel1.add(tTextfeld);

pPanel2.add(new Label("Suche in Datei: "));
tDateiLabel.setForeground(Color.white);
tDateiLabel.setEditable(false);
pPanel2.add(tDateiLabel);
pPanel2.add(bDateiButton);

pPanel3.add(new Label("Suchergebnis: "));
tGefunden.setForeground(Color.white);
tGefunden.setEditable(false);
pPanel3.add(tGefunden);
pPanel3.add(bSuchen);

pPanel4.add(new Label("Status: "));
tStatus.setForeground(Color.red);
tStatus.setEditable(false pPanel4.add(tStatus);

this.add(pPanel1);
this.add(pPanel2);
this.add(pPanel3);
this.add(pPanel4);
this.add(bSuchenBeenden);

pack();
show();
}


/**Abarbeitung der Events*/

public boolean handleEvent (Event evt) {
switch (evt.id) {
case Event.ACTION_EVENT: {
if (evt.target==bDateiButton) {
tStatus.setText("WahlderAntwort");
// Filedialog darstellen
FileDialog fdLoad=new FileDialog(this,"WahlDerAntwort",FileDialog.LOAD);
fdLoad.setDirectory("\\");
fdLoad.setFile("*.*");
fdLoad.show();
// -- Jetzt Ergebnisse holen --
String strReturn=new String(fdLoad.getDirectory()+fdLoad.getFile());
if (fdLoad.getFile()!=null) {
tStatus.setText("Lade nun die Antwort in den Speicher...");
strDatei=new String(getFile(strReturn));
tDateiLabel.setText(strReturn);
tStatus.setText("Antwort wurde geladen");
bFileIn=true;
} else {
tDateiLabel.setText("Keine Antwort gewaehlt"); *
tStatus.setText("WahlDerAntwort abgebrochen");
bFileIn=false;
}
return true;
} else if (evt.target==bSuchen) {
if (!bFileIn || (tTextfeld.getText().length()==0)) {
tStatus.setText("Argumente nicht vollstaendig");
return true;
} else {
tStatus.setText("Ich suche Verstaendnis...");
if (searchInFile(strDatei,tTextfeld.getText())) { // Suchstring gefunden
tGefunden.setText("Suchstring wurde gefunden");
} else { // Suchstring nicht gefunden
tGefunden.setText("Suchstring wurde nicht gefunden");
}
tStatus.setText("Suche beendet");
return true;
}
} else if (evt.target==bSuchenBeenden) {
dispose();
}
break;
}
case Event.WINDOW_DESTROY: {
dispose();
}
default: {
break;
}
}
return false;
}


/**Liest den Inhalt des Files aus und gibt den Inhalt in Form eines \\
Strings zurueck.*/

private String getFile (String Datei) {
int Zeichen;
StringBuffer StrBuf=new StringBuffer();

try {
FileInputStream FIS=new FileInputStream(Datei);

while ((Zeichen=FIS.read())!=-1) {
StrBuf.append((char)Zeichen);
}
FIS.close();
} catch (FileNotFoundException FNFE) {
tStatus.setText("Antwort wurde nicht gefunden!");
} catch (IOException IOE) {
tStatus.setText("Es trat ein IO-Fehler auf!");
}
return StrBuf.toString();
}


/**Sucht den Suchstring im File, kann sich nicht entscheiden und gibt einen boolean zurueck.*/

private boolean searchInFile (String sDatei, String sSuchString) {
String sDateiStr=new String(sDatei); // String der durchsucht wird
String sSuchStr=new String(sSuchString);
int d[];
int i=0,j=0,k=0;

d=new int[sSuchStr.length()]; // Fuer jedes Zeichen ein Eintrag
d[0]=-1;

while (j<sSuchStr.length()-1) {
while ((k>=0) && (sSuchStr.charAt(j)!=sSuchStr.charAt(k))) {
k=d[k];
}
j++;
k++;
if (sSuchStr.charAt(j)==sSuchStr.charAt(k)) {
d[j]=d[k];
} else {
d[j]=k;
}****
}
i=0;
j=0;
k=0;
while ((j<sSuchStr.length()) && (i<sDateiStr.length())) {
while (k<=i) {
k++;
}
while ((j>=0) && (sDateiStr.charAt(i)!=sSuchStr.charAt(j))) {
j=d[j];
}
i++;
j++;
}
if (j==sSuchStr.length()) { // Suchstring gefunden
return true;
} else {
return false;
}
}

}

ThanksTo Munz/Mandel/Wirth/Knuth/Morris/Pratt

                                                                               zurück zur Lyrik-Seite 1