Hallo,
ich hab da ein kleines problem. ich soll für die arbeit ein kleines java programm schreiben.
mein chef meinte du hast ja mal java gehabt..."joar klaro chef vor 8 jahren" grundkenntnisse....
vll darf ich hier mal um eure hilfe bitten
ich kann nämlich nicht mehr weiter.
es soll ein programm werden, um eine logdatei *csv*, aus einer telefonanlage einzulesen und anzuzeigen, nach anschlussnummern suchen soll und alle gespeicherten logs anzeigen soll.
ich kann ja mal das posten was ich schon habe.
mein eigentliches porblem ist das wenn ich die log datei einlese und dann alle daten anzeigen lasse mir immer entweder die erste zeile oder die letzte zeile fehlt.
die csv daten sehen so aus:
Anschlussnr.;Anrufnr.;Datum;Startzeit;Datum;Endzeit
04421203046;0321544861;01.02.2011;23:58:12;02.02.2011;00:01:12
04421567544;0323134551;03.01.2011;21:28:12;03.01.2011;21:33:12
04421567544;0323134551;03.01.2011;21:28:12;03.01.2011;21:33:12
wäre geil wenn mir wer n bisschen unter die arme greifen kann beim programmieren******
natürlich will ich auch programm abstürze vermeiden wenn mal eine falsche eingabe getätigt worden ist oder garnichts
ich hab da ein kleines problem. ich soll für die arbeit ein kleines java programm schreiben.
mein chef meinte du hast ja mal java gehabt..."joar klaro chef vor 8 jahren" grundkenntnisse....
vll darf ich hier mal um eure hilfe bitten
ich kann nämlich nicht mehr weiter.
es soll ein programm werden, um eine logdatei *csv*, aus einer telefonanlage einzulesen und anzuzeigen, nach anschlussnummern suchen soll und alle gespeicherten logs anzeigen soll.
ich kann ja mal das posten was ich schon habe.
mein eigentliches porblem ist das wenn ich die log datei einlese und dann alle daten anzeigen lasse mir immer entweder die erste zeile oder die letzte zeile fehlt.
die csv daten sehen so aus:
Anschlussnr.;Anrufnr.;Datum;Startzeit;Datum;Endzeit
04421203046;0321544861;01.02.2011;23:58:12;02.02.2011;00:01:12
04421567544;0323134551;03.01.2011;21:28:12;03.01.2011;21:33:12
04421567544;0323134551;03.01.2011;21:28:12;03.01.2011;21:33:12
wäre geil wenn mir wer n bisschen unter die arme greifen kann beim programmieren******
natürlich will ich auch programm abstürze vermeiden wenn mal eine falsche eingabe getätigt worden ist oder garnichts
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Telefonlogs {
//Variable speichert den gewünschten Menüpunkt
public String userEingabe="";
//Standartverzeichnis der Logdatei wenn nicht geändert wird
public String path = "files/log.csv";
//Diese Methode zeichnet ein Menü und speichert die gewünschte Funktion als String(1,2,3,4) in einer
//Variable. Danach werden Fallabfragen gemacht und die jeweilige Methode aufgerufen die mit der
//geschriebenen Zahl in Verbindung steht.
public void getMenu() throws IOException{
InputStreamReader input = new InputStreamReader (System.in);
BufferedReader reader = new BufferedReader(input);
String line="";
System.out.println("MENU");
System.out.println("--------------------------");
System.out.println("Drücken Sie die gewünschte Taste für die Aktion");
System.out.println("");
System.out.println("'1': Datei laden");
System.out.println("'2': Nach Anschlussnummer suchen");
System.out.println("'3': Alle gespeicherten Logs ausgeben");
System.out.println("'4': Programm schließen");
//Hier wird die Benutzereingabe gespeichert
line = reader.readLine();
userEingabe = line;
//Abfrage der gewünschten Methodenaufrufe
if(userEingabe.equals("1")){
ladeDatei();
}
if(userEingabe.equals("2")){
sucheAnschluss(path);
}
if(userEingabe.equals("3")){
zeigeAlle();
}
if(userEingabe.equals("4")){
System.out.println("Programm wird geschlossen");
System.exit(0);
}
}
//Diese Methode splittet alle Zeilen aus der .csv Datei und durchsucht die gesplitteten
//String welche in einem Array gespeichert sind auf Gleichheit mit der vom Anwender eingetragenen
//Anschlussnummer
public void sucheAnschluss(String path) throws IOException{
FileReader fr = new FileReader(path);
BufferedReader reader = new BufferedReader(fr);
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader eingabe = new BufferedReader(input);
String splitArray[] = null;
String zeile ="";
String anschlussnr="";
String[] datensatz;
System.out.println("Geben Sie die Anschlussnummer ein:");
anschlussnr = eingabe.readLine();
while((zeile=reader.readLine())!=null){
if(zeile.regionMatches(0,anschlussnr,0,anschlussnr.length())){
System.out.println("Anschluss nr gefunden");
datensatz = zeile.split(";");
for(int i=0;i<datensatz.length;i++){
System.out.println(datensatz[i]);
}
}
//Ausgabe wenn die gesuchte Nummer nicht gefunden werden konnte
else{
System.out.println("Keine Übereinstimmung gefunden");
break;
}
}
System.out.println(""); //Abstandshalter
getMenu();
}
//Diese Methode dient als eine Art Filechooser, hier kann der Anwender den Pfad zur Datei
//optional eingeben. Die Eingabe überschreibt die Standardpfadangabe public path
public void ladeDatei() throws IOException{
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader eingabe = new BufferedReader(input);
System.out.println("Geben Sie den Pfad zur gewuenschten Datei an");
System.out.println("Beispiel C:\\Programme\\log.csv");
path = eingabe.readLine();
System.out.println(""); //Abstandhalter
getMenu();
}
//Diese Methode listet alle Logdatensätze auf
public void zeigeAlle() throws IOException{
FileReader fr = new FileReader(path);
BufferedReader reader = new BufferedReader(fr);
String splitArray[]=null;
String line="";
//While Schleife mit Abruchkriterium wann aufgehört werden soll
while((line=reader.readLine())!=null){
splitArray = line.split(";");
for(int i=0;i<splitArray.length; i++){ //
//Sorgt dafür, das nach jedem 6. String ein Zeilenabstand kommt
if(i%9!=6){ //
System.out.print(splitArray[i] + " ");
}
else{
System.out.println(" ");
}
}
}
System.out.println("");//Platzhalter
System.out.println(""); //Platzhalter
getMenu();
}
//Aufruf der Main Methode
public static void main (String[]args) throws IOException{
//Ein neues Objekt vom Typ Telefonlogs erzeugen
Telefonlogs t = new Telefonlogs();
//Informationen für den Anwender beim Programmstart
System.out.println("TELEFONLOG PROGRAMM");
System.out.println("Von ...");
System.out.println("");
System.out.println("ACHTUNG******");
System.out.println("Es wurde eine vorgelegte Logdatei beim Programmstart geladen");
System.out.println("Diese befindet sich im Programmordner 'files'");
System.out.println("");
//Beim Start des Programms das Menü anzeigen lassen
t.getMenu();
}
}
Zuletzt bearbeitet von einem Moderator: