Hallo, ich bin ein absoluter Java neuling und leider spiegelt sich das auch in meinen Ergebnisse wieder 
Nun zu meinem Problem:
Ich muss eine Funtion schreiben, die Text aus einer txt-file mit eingegebenen Text vergleicht, dabei muss auch ein Datums-wert verglichen werden. Wenn ein 100% übereinstimmendes Ergebnis gefunden wurde soll dieses letztendlich ausgegeben werden. Ich poste hier einfach mal den bisherigen code, dann ist es sicherlich leichter naczuvollziehn.
Ich weiß die Art wir ich auslese und vergleiche ist sicherlich sehr komisch, aber ich habe auf die schnelle nichts besseres hinbekommen (auch lass ich mir da gerne helfen). Im endeffekt geht es um die Funktion getFilteredEvents().
Wie kann ich vlt einen besseren Vergleich von Text machen (sowas wie strcmp)?
Wie kann ich die File effektiver auslesen, anstatt erst eine Zeile in Buchstaben zu splitten um die dann in arrays zu speichern?
Die Inputfile sieht so aus:
Wie verhält sich das ganze mit den Calendar objekten, wie kann ich feststellen ob mein angegebenes Datum auch mit dem in der Datei übereinstimmt, wie kann ich calendar-daten zu einem string kovertieren?
Viele Fragen und ich hoffe auf nützliche Antworten, Danke schon einmal dafür!
Anhang: restlichen teile die zum programm gehören falls benötigt.

Nun zu meinem Problem:
Ich muss eine Funtion schreiben, die Text aus einer txt-file mit eingegebenen Text vergleicht, dabei muss auch ein Datums-wert verglichen werden. Wenn ein 100% übereinstimmendes Ergebnis gefunden wurde soll dieses letztendlich ausgegeben werden. Ich poste hier einfach mal den bisherigen code, dann ist es sicherlich leichter naczuvollziehn.
Code:
/*
* EventFilter.java
*
* Created on 7. Mai 2009, 08:29
*
*/
package weitblickdemo;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.swing.JOptionPane;
public class EventFilter implements IEventConsts{
private static final String String = null;
private HashSet<String> curLocations;
private HashSet<String> curEvents;
private Calendar startDate;
private Calendar endDate;
/** Creates a new instance of EventFilter */
public EventFilter() {
//Inititalisierung
curLocations = new HashSet<String>();
curEvents = new HashSet<String>();
loadData();
}
public synchronized boolean addLocation (String location) {
return curLocations.add(location);
}
public synchronized boolean removeLocation (String location) {
return curLocations.remove(location);
}
public synchronized boolean clearLocations() {
curLocations.clear();
return true;
}
public synchronized boolean addEvent (String event) {
return curEvents.add(event);
}
public synchronized boolean removeEvent (String event) {
return curEvents.remove(event);
}
public synchronized boolean clearEvents () {
curEvents.clear();
return true;
}
public void setStartDate(Calendar startDate) {
System.err.println(startDate.getTime()); //.
this.startDate = startDate;
}
public Calendar getStartDate() {
return startDate;
}
public void setEndDate(Calendar endDate) {
System.err.println(endDate.getTime());
this.endDate = endDate;
}
public Calendar getEndDate() {
return endDate;
}
@SuppressWarnings("null")
public String getFilteredEvents() {
int i=0;
int j=0;
int z=0;
char sort[] = null;
char sdatum[] = null;
char styp[] = null;
char sname[] = null;
try {
BufferedReader in = new BufferedReader(new FileReader("daten.txt"));
String zeile = null;
while ((zeile = in.readLine()) != null) {
char zeichen[] = zeile.toCharArray ();
if(zeichen[i]==' ')
z++;
if(z==0) {
sort[j]=zeichen[i];
}
if(z==1)
sdatum[j]=zeichen[i];
if(z==2)
styp[j]=zeichen[i];
if(z==3)
sname[j]=zeichen[i];
if(zeichen[i]=='\n') {
if(curLocations.contains(sort)==true && /*sdatum==date &&*/ curEvents.contains(styp)==true) {
//tostring - ausgabe? return?
z=0;
j=-1;
i=-1;
}
}
i++;
j++;
}
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}
private void loadData() {
//TODO!
}
}
Ich weiß die Art wir ich auslese und vergleiche ist sicherlich sehr komisch, aber ich habe auf die schnelle nichts besseres hinbekommen (auch lass ich mir da gerne helfen). Im endeffekt geht es um die Funktion getFilteredEvents().
Wie kann ich vlt einen besseren Vergleich von Text machen (sowas wie strcmp)?
Wie kann ich die File effektiver auslesen, anstatt erst eine Zeile in Buchstaben zu splitten um die dann in arrays zu speichern?
Die Inputfile sieht so aus:
Code:
Arnstadt 06/32/2009 lesung Diashow
Ilmenau 06/32/2009 sport Schwimmbad
Stützerbach 06/27/2009 kino Film
Manebach 06/17/2009 markt Fischmarkt
Wie verhält sich das ganze mit den Calendar objekten, wie kann ich feststellen ob mein angegebenes Datum auch mit dem in der Datei übereinstimmt, wie kann ich calendar-daten zu einem string kovertieren?
Viele Fragen und ich hoffe auf nützliche Antworten, Danke schon einmal dafür!
Anhang: restlichen teile die zum programm gehören falls benötigt.