schnelles durchsuchen von Dateien

D

Dine89

Gast
Hallo ihr,

ich hoffe ihr könnt mir helfen. Ich sitze an meinem Abschlussprojekt für die IHK Prüfung. Ich mache meine Ausbildung zur Fachinformatikerin AE.
Mein Problem ist, dass ich ein Programm schreiben soll, dass mehrere Strings aus einer Liste einliest und diese Strings dann in Dateien suchen soll. Die Dateien, die durchsucht werden sollen, dass sind tausende.
Ich habe auch schon eine Suchfunktion erstellt, die funktioniert soweit auch, aber die dauert viiiieeeel zu lange.

Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

import javax.swing.JRadioButton;
import javax.swing.JTextField;


public class Search {
	// Attribute
	Vector v2;
	String suchordner;
	BufferedWriter writer;
	BufferedWriter helpWriter;
	String wordToFind;
	boolean append;
	String outputFile;
	int i = 0;
	String qryCopy;
	String hitordner;
	String dest;

	// Konstruktor
	public Search(Vector v2, String ordner, String qryCopy, String hitordner) {
		// TODO Auto-generated constructor stub
		this.v2 = v2;
		this.suchordner = ordner;
		this.qryCopy = qryCopy;
		this.hitordner = hitordner;
		outputFile = "log.txt";
		
		try {

		        //System.out.println( j + ": " + v2.elementAt(j) );
				startScanning(new File(ordner), v2, outputFile, i);
				i++;

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		Output out = new Output();
	}
	
	

	public void startScanning(File dir, Vector v2, String outputFile, int i) throws IOException{
	      this.wordToFind = wordToFind;
	      try { 
	    	 // writer für LogDatei 
	         writer = new BufferedWriter(new FileWriter(outputFile, true));
	         //writer für Hilfsfile
	         helpWriter = new BufferedWriter(new FileWriter("help.txt", true));
	         
	         // Schreiben in LogDatei
	         if(i == 0){
	        	SimpleDateFormat formatter = new SimpleDateFormat ("dd.MM.yyyy 'at' HH:mm:ss ");
	 			Date currentTime = new Date();
	        	writer = new BufferedWriter(new FileWriter(outputFile, true));
	 	writer.append("~~~~~~~~Suchvorgang: " + formatter.format(currentTime) + "~~~~~~~~");
	            writer.newLine();
	            writer.newLine();
	         }
	         
	         readDir(dir);         
	 
	      } finally{
	         if(writer!= null)
	            try { writer.close(); } catch (IOException e) { }    
	            
	         if(helpWriter!= null)
		        try { helpWriter.close(); } catch (IOException e) { }       
	      }
	 
	   }
	 
	 	// Auflisten der Files
	   public void readDir(File dir) throws IOException{
	      if(dir.isDirectory()){
	         File[] files = dir.listFiles();
	         for(File file: files){
	        	System.out.println(file.getName());
	            readDir(file);  
	         }
	      }else{
	         
	            readInFile(dir);
	      }
	   }
	 
	   
	   // Durchsuchen der Dateien
	   public void readInFile(File file) throws IOException{
	 
		 
			  BufferedReader reader =null;
			  try {    
				  for ( int j=0; j < v2.size(); j++ ){
					  wordToFind = (String) v2.elementAt(j);
				  reader = new BufferedReader(new FileReader(file));
	 
				  String line = null;
				  int lineNumber =0;
				  boolean found = false;
				  while((line= reader.readLine()) !=null) {
					  lineNumber++;
					  if(line.contains(wordToFind)){
						  if(!found) {
	            	  
							  // Schreiben in LogDatei
							  writer.append(file.getAbsolutePath()+":\r\n");
							  writer.newLine();
	                  
							  // Schreiben in Hilfsdatei
							  helpWriter.append(file.getAbsolutePath()+":\r\n");
							  helpWriter.newLine();
	                  
							  if(qryCopy == "OK"){
						                      dest = hitordner + "\\" + file.getName();
							         Copy kopieren = new Copy(file.getAbsolutePath(), dest);
							  }
	                  
							  found = true;
						  }     
						  try {
							  // Schreiben in LogDatei
							  writer.append(lineNumber+": "+line+"\r\n");
							  writer.newLine();
	                  
							  // Schreiben in Hilfsdatei
							  helpWriter.append(lineNumber+": "+line+"\r\n");
							  helpWriter.newLine();
	                  
						  } catch (IOException e) {
							  System.out.println("Fehler beim Schreiben!!");
							  e.printStackTrace();
						  }
	 
					  }
				  }
	         
	      	}
	      }finally{
	         reader.close();
	      }
	 
 }
	
}
[code=Java]


Ich hoffe es ist verständlich,was ich hier mache. Die Strings, die in den Dateien gesucht werden müssen, habe ich vorher in einem Vector geschrieben. Habt ihr vllt eine schnellere Lösung? Ich habe schon überall gesucht, aber ich finde einfach ncihts.
 

StupidAttack

Bekanntes Mitglied
Wie wärs mit nem / ?

Niemand macht sich sonst die Mühe dies durchzulesen und das vermag ich sogar total besoffen und übernächtigt zu behaupten...
 
G

Gast2

Gast
Bitte mal das schließende Java Tag korrigieren, dann kann man den code etwas einfacher lesen :)
Hast du schonmal gemessen wo du soviel Zeit liegen lässt? Beim einlesen der Datei?
Wenn die Dateien groß werden wirst du mit read(byte[] buffer) ein wenig rausholen können.
 

Sempah

Bekanntes Mitglied
Dein Code ist auch nicht wirklich gut strukturiert. Du springst von oben nach unten und wieder zurück.
Was soll: "this.wordToFind = wordToFind;" in Zeile 55 zum Beispiel machen?
 

FArt

Top Contributor
Der code ist wirklich nicht gut.

Du liest jede Datei mehrfach ein, nämlich für jedes Wort welches gefunden werden soll? Ist uncool.
Lege die Wörter in eine Map. Lese jede Datei einmal ein, und zwar Wortweise (oder Zeilenweise und trenne in Wörter auf, wenn keine Wortrennungen über zwei Zeilen vorkommen) und überprüfe so, ob ein Wort ein gesuchtes Wort aus der Map ist.
 
D

Dine89

Gast
Java:
public class Search {
	// Attribute
	Vector v2;
	String suchordner;
	BufferedWriter writer;
	BufferedWriter helpWriter;
	String wordToFind;
	boolean append;
	String outputFile;
	int i = 0;
	String qryCopy;
	String hitordner;
	String dest;

	// Konstruktor
	public Search(Vector v2, String ordner, String qryCopy, String hitordner) {
		// TODO Auto-generated constructor stub
		this.v2 = v2;
		this.suchordner = ordner;
		this.qryCopy = qryCopy;
		this.hitordner = hitordner;
		outputFile = "log.txt";
		
		try {

		        //System.out.println( j + ": " + v2.elementAt(j) );
				startScanning(new File(ordner), v2, outputFile, i);
				i++;

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		Output out = new Output();
	}
	
	

	public void startScanning(File dir, Vector v2, String outputFile, int i) throws IOException{
	      this.wordToFind = wordToFind;
	      try { 
	    	 // writer für LogDatei 
	         writer = new BufferedWriter(new FileWriter(outputFile, true));
	         //writer für Hilfsfile
	         helpWriter = new BufferedWriter(new FileWriter("help.txt", true));
	         
	         // Schreiben in LogDatei
	         if(i == 0){
	        	SimpleDateFormat formatter = new SimpleDateFormat ("dd.MM.yyyy 'at' HH:mm:ss ");
	 			Date currentTime = new Date();
	        	writer = new BufferedWriter(new FileWriter(outputFile, true));
	 			writer.append("~~~~~~~~Suchvorgang: " + formatter.format(currentTime) + "~~~~~~~~");
	            writer.newLine();
	            writer.newLine();
	         }
	         
	         readDir(dir);         
	 
	      } finally{
	         if(writer!= null)
	            try { writer.close(); } catch (IOException e) { }    
	            
	         if(helpWriter!= null)
		        try { helpWriter.close(); } catch (IOException e) { }       
	      }
	 
	   }
	 
	 	// Auflisten der Files
	   public void readDir(File dir) throws IOException{
	      if(dir.isDirectory()){
	         File[] files = dir.listFiles();
	         for(File file: files){
	        	System.out.println(file.getName());
	            readDir(file);  
	         }
	      }else{
	         
	            readInFile(dir);
	      }
	   }
	 
	   
	   // Durchsuchen der Dateien
	   public void readInFile(File file) throws IOException{
	 
		 
		   BufferedReader reader =null;
		   try {    
			   // hier wird der Vector durchgegangen
			   for ( int j=0; j < v2.size(); j++ ){
				   wordToFind = (String) v2.elementAt(j);
				   reader = new BufferedReader(new FileReader(file));
	 
				   String line = null;
				   int lineNumber =0;
				   boolean found = false;
				   while((line= reader.readLine()) !=null) {
					   lineNumber++;
					   if(line.contains(wordToFind)){
						  if(!found) {
	            	  
							  // Schreiben in LogDatei
							  writer.append(file.getAbsolutePath()+":\r\n");
							  writer.newLine();
	                  
							  // Schreiben in Hilfsdatei
							  helpWriter.append(file.getAbsolutePath()+":\r\n");
							  helpWriter.newLine();
	                  
							  if(qryCopy == "OK"){
								  dest = hitordner + "\\" + file.getName();
								  Copy kopieren = new Copy(file.getAbsolutePath(), dest);
							  }
	                  
							  found = true;
						  }     
						  try {
							  // Schreiben in LogDatei
							  writer.append(lineNumber+": "+line+"\r\n");
							  writer.newLine();
	                  
							  // Schreiben in Hilfsdatei
							  helpWriter.append(lineNumber+": "+line+"\r\n");
							  helpWriter.newLine();
	                  
						  } catch (IOException e) {
							  System.out.println("Fehler beim Schreiben!!");
							  e.printStackTrace();
						  }
	 
					  }
				  }
	         
	      	}
	      }finally{
	         reader.close();
	      }
	 
 }
	
}

Hier nochmal in Java-tags. Sorry.

Ja, die zeithabe ich noch nicht gemessen. Die Dateien, die ich durchsuche sind aber schon ziemlich groß. wie funktioniert dieses
read(byte[] buffer) ?

@Semprah: "this.wordToFind = wordToFind;" kann glaube ich weg, das ist noch von vorher, ich habe an dem Code nämlich schon ein wenig rumgebastelt....
 

FArt

Top Contributor
P.S.:
Logik aus dem Konstruktor aufrufen ist kein guter Stil. Exectpions NIE einfach schlucken, zumindes logggen, auch im finally wenn ein Stream geschlossen wird.
Exceptionhandling ansehen: behebbare Fehler loggen und Programm weiterlaufen lassen, schwere Fehler weiterwerfen und das Programm terminieren. Guter Code ist dokumentiert und z.B. was Variablen angeht selbstdokumentierend. Schau dir mal deine Scopes an: öffentliche Methoden, private Methoden. Was ist sinnvoll als Attribut zu halten, was sind sinnvolle Übergabeparameter an die Methoden?
 

ThreadPool

Bekanntes Mitglied
Zitat: "schon ziemlich groß", ist keine vernünftige Angabe. Wie groß ist denn die größte Datei und können Dateien größer als die größte Datei vorkommen? Und wie viele Dateien sind es denn ingesamt?
 
D

Dine89

Gast
@ FART: Was ist eine MAP in Java? Sry, aber ich hatte Java bis jetzt nur ein paar Stunden in der Schule und da hatten wir das nicht in dem Ausmaß und hier in der Firma mache ich sonst nie was mit Java...
Und mit dem Code, da muss ich nochmal durchschauen. Und das mit der Zeit liegt wahrscheinlich auch daran, dass ich die Dateien immer wieder aufrufe, aber ich habe keine Ahnugn wie das anders geht... Ich habe das Internet abgesucht, aber ncihts anderes gefunden.
 
D

Dine89

Gast
Ziemlich groß sind manchmal knapp 6GB (nur Textdateien) und in den Ordnern liegen teilweise mehrer tausend Dateien. DIe größten Ordner liegen so bei 6000. Die Ordner selbst können mehrere GB groß sein.
 
D

Dine89

Gast
Also die Suchstrings könne auch mal 5 sein oder mehr. Gestern waren es z.B. über 7000. Und da hätte mein Programm ein paar Tage gebraucht -.-
Von Maps habe ich noch nie etwas gehört.
 
G

Gast2

Gast
Lese jede Datei einmal ein, und zwar Wortweise
6GB große Dateien würde ich nie Wortweise einlesen... Um die relativ schnell eingelesen zu bekommen kommst du um nen byte[] buffer nicht drumrum. Mit der Größe kannst du mal ein wenig rumspielen (16MB, 32MB, etc.).
 

ThreadPool

Bekanntes Mitglied
Ziemlich groß sind manchmal knapp 6GB (nur Textdateien) und in den Ordnern liegen teilweise mehrer tausend Dateien. DIe größten Ordner liegen so bei 6000. Die Ordner selbst können mehrere GB groß sein.

D.h. eine Datei kann bis zu 6GB groß sein? Und die größten Ordner können bei 6000 GB liegen? Das wäre schon eine nicht unerheblich große Menge an Daten die es zu Durchsuchen gilt.
 
D

Dine89

Gast
@ThreadPool: Sorry 6MB Dateien meine ich, gehta ber auch mal 12MB oder, das ist total unterschiedlich.

@Fart: Wir haben so was in der Schule im Java-Unterricht nie gemacht und Schwerpunktmäßig hatte ich auch Abap. Und hier in der Firma mache ich nie was mit Java. Schule hatte ich auch nur 3x im Jahr. Blockunterricht halt...
 
D

Dine89

Gast
Wie setze ich diese Maps denn in meinen Programm um? ich habe mir grad mehrer Sachen durchgelesen dazu habe ich folgendes gefunden:

Java:
properties.put("firstname", "stefan");  

properties.put("lastname", "Kiesel");  

properties.put("birthday", "14.12.1987");  

properties.put("birthplace", "Würzburg");

Also so füllt man die, aber wie wende ich das an, dass ich die dateien nicht mehr einzeln aufmachen muss?
 

FArt

Top Contributor
Wie setze ich diese Maps denn in meinen Programm um? ich habe mir grad mehrer Sachen durchgelesen dazu habe ich folgendes gefunden:

Java:
properties.put("firstname", "stefan");  

properties.put("lastname", "Kiesel");  

properties.put("birthday", "14.12.1987");  

properties.put("birthplace", "Würzburg");

Also so füllt man die, aber wie wende ich das an, dass ich die dateien nicht mehr einzeln aufmachen muss?

Sorry, ich meinte ein Set... HashSet
The Set Interface (The Java™ Tutorials > Collections > Interfaces)
 

Empire Phoenix

Top Contributor
writer.append(lineNumber+": "+line+"\r\n");
ersetzen
Bitte nachlesen mit google warum + bei Strings BÖSE ist.(zumindest wenn das oft aufgerufen wird und die strings lang sind)

writer = new BufferedWriter(new FileWriter(outputFile, true)); ---------------------------
//writer für Hilfsfile
helpWriter = new BufferedWriter(new FileWriter("help.txt", true));

// Schreiben in LogDatei
if(i == 0){
SimpleDateFormat formatter = new SimpleDateFormat ("dd.MM.yyyy 'at' HH:mm:ss ");
Date currentTime = new Date();
writer = new BufferedWriter(new FileWriter(outputFile, true));-----------------------------
....
fu 2 mal der selbe writer?

ansonsten bitte methoden benutzen (ich darf solche programme warten die dann teils über 5 jahre gewachsen sind )
 
D

Dine89

Gast
Aber muss ich ein Hashset nicht genauso durchlaufen wie ein Array?

@Empire Phoenix: Danke für die Infos, dass ich den Writer doppelt hatte ist mir gar nicht aufgefallen...
 

FArt

Top Contributor
Aber muss ich ein Hashset nicht genauso durchlaufen wie ein Array?

@Empire Phoenix: Danke für die Infos, dass ich den Writer doppelt hatte ist mir gar nicht aufgefallen...

Nein. Du fragst nur, ob ein Objekt dort enhalten ist. Die Datenstruktur ist so aufgebaut, dass das Auffinden von Objekten sehr schnell funktioniert, auch bei vielen Objekten in der Datenstrutkur.
 

slawaweis

Bekanntes Mitglied
Ich hoffe es ist verständlich,was ich hier mache. Die Strings, die in den Dateien gesucht werden müssen, habe ich vorher in einem Vector geschrieben. Habt ihr vllt eine schnellere Lösung? Ich habe schon überall gesucht, aber ich finde einfach ncihts.
es gibt eine schnellere Lösung. Man braucht einen Suchwortbaum und eine Halbtrefferliste. Alles der Reihe nach.

Wenn man einen Algorithmus designt, sollte man zuerst die Grundbedienungen festlegen. Bei einem Algorithmus, welcher auf vielen Daten arbeitet, sollte folgendes gelten:

A. Der Anwender sollte sehen, wo der Algorithmus sich gerade befindet. So wäre eine Progress Bar empfehlenswert. Weiterhin wäre es gut, wenn der Anwender den Algorithmus pausieren oder den aktuellen Zustand speichern könnte, um später fortzusetzen.
B. Wenn man viele Dateien hat, sollte man vorher eine Strategie überlegen, in welcher Reihenfolge man diese durchsucht. Vielleicht nach der Größe, vielleicht nach dem Dateinahmen. Auch sollte man dem Anwender die Möglichkeit geben, mit Mustern für die Datei- oder Ordnernamen den Suchkreis einzuschränken. Eventuell könnte der Anwender sogar bestimmte Dateien während der Ausführung manuell überspringen.
C. Da die Leseoperation von der Festplatte hier die teuerste Operation ist (nach der Zeit), sollte man diese auf das Minimum reduzieren. So sollte man jedes Byte der jeweiligen Datei nur einmal lesen. Weiterhin sollte man großzügige Buffer zum Einlesen wählen, auch mehrere MB groß.

Der eigentliche Algorithmus wäre jetzt wie folgt.

1. Aus den Suchwörtern wird ein Suchbaum gebildet. Dabei wird für jedes Zeichen eines Suchwortes ein Knoten im Baum gebildet und in den Blättern liegen die einzelnen Suchwörter. Beispiel für 4 Suchwörter Hund, Katze, Kartoffel und Huhn:

Code:
Wurzel
-h
--u
---h
----n(huhn)
---n
----d(hund)
-k
--a
---r
----t
-----o
------f
-------f
--------e
---------l(kartoffel)
---t
----z
-----e(katze)

2. jede Datei im Suchbereich wird einmal geöffnet. Wenn alle Dateien gelesen sind -> Punkt 9
3. es wird eine leere Liste erstellt, die Halbtrefferliste. In dieser Liste werden die Knoten aus dem Suchbaum gespeichert.
4. aus der Datei wird ein Char-Buffer gefüllt. Wenn die Datei ausgelesen ist -> Punkt 2
5. jeder einzelne Char-Wert aus dem Char-Buffer wird jetzt einmal durchgegangen. Wenn der Char-Buffer leer ist -> Punkt 4
6. Aus der Halbtrefferliste werden die aktuellen Knoten in ein Array kopiert, die Halbtrefferliste wird geleert.
7. für jeden Knoten aus dem Array der Halbtrefferliste wird überprüft, ob dieser Knoten ein Kind mit dem aktuelle Char-Wert (aus Punkt 5) hat. Wenn so ein Kind vorhanden ist und dieses kein Blatt ist, wird der Kindknoten in der Halbtrefferliste gespeichert. Wenn kein Kind vorhanden ist, passiert nichts. Wenn das Kind ein Blatt ist, wurde ein Suchwort im Stream gefunden und die Fundstelle kann entweder abgespeichert oder gleich ausgegeben werden.
8. es wird noch getestet, ob der aktuelle Char-Wert als Kindknoten in der Wurzel zu finden ist. Falls das der Fall ist, wird das Kindknoten in der Halbtrefferliste gespeichert.
9. Ende

Slawa
 

FArt

Top Contributor
@slawaweis
Saugute Antwort, auch wenn ich den Algorithmus jetzt nicht verifiziert habe. Der Vollständigkeit halber hier an dem Thread sehr gut aufgehoben... aber für den TS etwas zu viel möchte ich mal behaupten...
 

slawaweis

Bekanntes Mitglied
@slawaweis
Saugute Antwort, auch wenn ich den Algorithmus jetzt nicht verifiziert habe. Der Vollständigkeit halber hier an dem Thread sehr gut aufgehoben...
danke für die Blumen :)

aber für den TS etwas zu viel möchte ich mal behaupten...

finde ich nicht, Zitat:

Ich sitze an meinem Abschlussprojekt für die IHK Prüfung. Ich mache meine Ausbildung zur Fachinformatikerin AE.

Slawa
 

timbeau

Gesperrter Benutzer
Hi Dine,

was darfst du alles nutzen. Wie in fast jedem Bereich gibts schon tolle Hilfsmittel. Eine sehr leistungsfähige Suche ist Apache Lucene - Overview

Lucene erlaubt es dir deine Dateien zu Indexieren und anhand dieses Index mit Algorithmen die mit 100%iger Wahrscheinlichkeit schneller und besser arbeiten als deine eigenen, nach Wörtern zu suchen.

D.h. ich würde ganz schnell mich in Lucene einarbeiten und die Funktionen dann in deinem Programm nutzen. Macht viel mehr Sinn für die Zukunft und ist vor allem dann auch nutzbar.
 

FArt

Top Contributor
Hi Dine,

was darfst du alles nutzen. Wie in fast jedem Bereich gibts schon tolle Hilfsmittel. Eine sehr leistungsfähige Suche ist Apache Lucene - Overview

Lucene erlaubt es dir deine Dateien zu Indexieren und anhand dieses Index mit Algorithmen die mit 100%iger Wahrscheinlichkeit schneller und besser arbeiten als deine eigenen, nach Wörtern zu suchen.

D.h. ich würde ganz schnell mich in Lucene einarbeiten und die Funktionen dann in deinem Programm nutzen. Macht viel mehr Sinn für die Zukunft und ist vor allem dann auch nutzbar.

Aua... jetzt werden die Kanonen für die Spatzen immer größer...
 

timbeau

Gesperrter Benutzer
Bei 6GB Texten oder mehreren 1000 Dateien stellt sich mir die Frage worein ich mehr Aufwand stecke. In sinnlose Optmierungsarbeit eines schlechten Algorithmus oder "einfach" fertige Bibliotheken nutze die von Porfis entwickelt wurden. Abgesehen davon gehts ja nicht um ne Wochenaufgabe sondern um eine Abschlussarbeit.
 

FArt

Top Contributor
Bei 6GB Texten oder mehreren 1000 Dateien stellt sich mir die Frage worein ich mehr Aufwand stecke. In sinnlose Optmierungsarbeit eines schlechten Algorithmus oder "einfach" fertige Bibliotheken nutze die von Porfis entwickelt wurden. Abgesehen davon gehts ja nicht um ne Wochenaufgabe sondern um eine Abschlussarbeit.

6GB war eine Fehlinformation...es geht um ein paar MB (s.o.)

Ich kann nicht einordnen was als Abschlußarbeit gefordert ist. Der Kenntnisstand des TS und die Informationen der IHK, was ein Fachinformatiker AE können muss, klaffen ein wenig auseinander.

Aber auch anders: wie groß wäre der Aufwand mit Lucene? Minimal... im Prinzip nimmt mir die Arbeit ja die Engine ab... ist das dann eine Abschlußarbeit, wenn das Thema heißt: finde ein paar Worte in ein paar Tausend Texten und gib die Stellen an?
 

timbeau

Gesperrter Benutzer
Auch wieder wahr. Aber wenn du jemand einstellst und du hast A) eine Person die sich dumm und dämlich an so einer Aufgabe rumproggramiert und B) eine Person die die passendste Lib einbaut und diese nutzt und nach einem Tag fertig ist

Je nachdem ob noch eine GUI gebastelt werden soll bleibt ja evtl genug Aufwand übrig.

Und Lucene ist ja kein fertiges Programm sondern stellt Libs zur Verfügung. Und ob ich nun die Java-libs importe oder ne lucene bleibt sich im Endeffekt gleich.
 
M

MiDniGG

Gast
Naja. Aber die IHK-Abschlussprüfung hat ja ca. nichts mit der Realität zu tun. (Außer man hat zufällig ein realitätsnahes Projekt zur Hand :-D ). Also geht es da sicher nicht darum eine LIB zu ergooglen und einzubauen... ;-)
Und eine GUI mit schätzungsweise einem Textfeld, einem Button (vllt auch 2 oder 3), wegen mir noch eine Menüleiste und einem Feld für die Ausgabe wird meiner Meinung nach nicht wirklich reichen...

BTW: Was ich nicht verstehe. Du machst die ganze Ausbildung über ABAP. Wieso nicht als Abschlussprojekt??? -.-'
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Schnelles Potenzieren Java Basics - Anfänger-Themen 5
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
V Schnelles Potenzieren Java Basics - Anfänger-Themen 10
G Schnelles Auslesen von HashMaps unter JDK1.4.2 Java Basics - Anfänger-Themen 9
districon 2D Array - Zeilen und Spalten durchsuchen Java Basics - Anfänger-Themen 3
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
F Array nach Objektattribut durchsuchen Java Basics - Anfänger-Themen 6
O ArrayList oberflächig durchsuchen Java Basics - Anfänger-Themen 3
M Array nach String durchsuchen und zurückgeben Java Basics - Anfänger-Themen 16
Orkanson Best Practice Array Diagonal durchsuchen Java Basics - Anfänger-Themen 2
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
M CSV Datei durchsuchen Java Basics - Anfänger-Themen 4
M Array nach Zehnen durchsuchen. Java Basics - Anfänger-Themen 25
C String durchsuchen Java Basics - Anfänger-Themen 4
MiMa Lösungsansatz fürText durchsuchen mit Stichwörter Java Basics - Anfänger-Themen 9
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
F Mehrdimensionales Array durchsuchen Java Basics - Anfänger-Themen 8
P Input/Output Arraylist nach String eines Objekts durchsuchen Java Basics - Anfänger-Themen 26
X Probleme beim rekursiven Durchsuchen von Verzeichnissen Java Basics - Anfänger-Themen 1
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
S Zahlen Array durchsuchen Java Basics - Anfänger-Themen 6
F Map nach Werten durchsuchen Java Basics - Anfänger-Themen 3
S Ordnerstrukturen durchsuchen und Files bearbeiten Java Basics - Anfänger-Themen 6
W Array nach String durchsuchen und Ausgeben Java Basics - Anfänger-Themen 8
O Objekte nach Attributen durchsuchen Java Basics - Anfänger-Themen 10
R 2 mit Arrays bestückte LinkedLists durchsuchen/vergleichen Java Basics - Anfänger-Themen 3
S Array durchsuchen Java Basics - Anfänger-Themen 3
T HashMap Werte einfügen, durchsuchen und auslesen Java Basics - Anfänger-Themen 17
I String durchsuchen Java Basics - Anfänger-Themen 2
L Logdatei durchsuchen, Suchstand abspeichern? Java Basics - Anfänger-Themen 9
I ArrayList<EigeneKlasse> durchsuchen Java Basics - Anfänger-Themen 2
K CSV durchsuchen und bearbeiten Java Basics - Anfänger-Themen 1
H String einlesen, in .txt durchsuchen und Ergebnisse ausgeben Java Basics - Anfänger-Themen 22
F Classpath Dateien einbinden und Classpath durchsuchen Java Basics - Anfänger-Themen 2
R Erste Schritte API durchsuchen Java Basics - Anfänger-Themen 5
F HashMap nach kleinstem Value durchsuchen Java Basics - Anfänger-Themen 11
J Dynamische Liste durchsuchen + anpassen Java Basics - Anfänger-Themen 3
S Text mit Programm einlesen und durchsuchen Java Basics - Anfänger-Themen 8
O Quellcode nach bestimmter Ausgabe durchsuchen Java Basics - Anfänger-Themen 14
M String nach Zahlen durchsuchen Java Basics - Anfänger-Themen 21
I Dateien in Ordner und Unterordner durchsuchen Java Basics - Anfänger-Themen 18
F Textfile auslesen und durchsuchen Java Basics - Anfänger-Themen 13
F String durchsuchen Java Basics - Anfänger-Themen 11
L eingegebene Strings nache Eigenschaften durchsuchen. Java Basics - Anfänger-Themen 25
B ArrayList nach Wiederholungen durchsuchen Java Basics - Anfänger-Themen 2
K OOP Objektgefülltes Array nach minWert durchsuchen Java Basics - Anfänger-Themen 5
J Ordner und Unterordner nach Dateien durchsuchen Java Basics - Anfänger-Themen 7
R liste durchsuchen Java Basics - Anfänger-Themen 6
K Klassen String - nach Wort durchsuchen Java Basics - Anfänger-Themen 6
R Verzeichnisse rekursiv nach Dateiduplikaten durchsuchen Java Basics - Anfänger-Themen 5
W Variablen durchsuchen Java Basics - Anfänger-Themen 5
B Zweidimensionales Array durchsuchen und ändern Java Basics - Anfänger-Themen 8
C Strings durchsuchen und umwandeln Java Basics - Anfänger-Themen 4
P String durchsuchen Java Basics - Anfänger-Themen 17
StupidAttack Html Code durchsuchen Java Basics - Anfänger-Themen 2
G Datentypen "Liste" eigener Objekte durchsuchen Java Basics - Anfänger-Themen 6
J geschickter Algorithmus um die 'Umgebung' einer stelle eines Arrays zu durchsuchen Java Basics - Anfänger-Themen 7
S String nach Ausdruck durchsuchen und Folgeattribut ausgeben Java Basics - Anfänger-Themen 3
N OOP Dynamische Objekte und nach Parametern durchsuchen Java Basics - Anfänger-Themen 4
H Datei durchsuchen mit Regex-Ausdruck Java Basics - Anfänger-Themen 14
R String einlesen, Textdatei danach durchsuchen und aus Zeile Objekt erzeugen Java Basics - Anfänger-Themen 5
O Sämtliche Textdateiformat durchsuchen Java Basics - Anfänger-Themen 2
O Performant große Dateien durchsuchen Java Basics - Anfänger-Themen 8
X regex frage (durchsuchen) Java Basics - Anfänger-Themen 2
N Fragen zu String durchsuchen und verarbeiten Java Basics - Anfänger-Themen 23
N Array durchsuchen Java Basics - Anfänger-Themen 7
S Collection rückwärts durchsuchen Java Basics - Anfänger-Themen 4
J ArrayList nach Objekten durchsuchen Java Basics - Anfänger-Themen 2
S Sortierte LinkedList nach Variablen durchsuchen und nicht nach INDEX Java Basics - Anfänger-Themen 6
U ArrayList nach Zahlen durchsuchen? Java Basics - Anfänger-Themen 8
M Eclipse: Durchsuchen aller Dateien? Java Basics - Anfänger-Themen 1
M Ordner der jar Datei herausfinden und Partent durchsuchen Java Basics - Anfänger-Themen 4
A Verzeichnisse nach Datei / Ordner durchsuchen Java Basics - Anfänger-Themen 11
N Problem beim Durchsuchen einer LinkedList Java Basics - Anfänger-Themen 5
hdi Ornderübersicht (durchsuchen) für Öffnen/Speichern Java Basics - Anfänger-Themen 4
B Text nach Signalwörtern durchsuchen Java Basics - Anfänger-Themen 4
G String durchsuchen Java Basics - Anfänger-Themen 4
T treeSet durchsuchen Java Basics - Anfänger-Themen 2
K Bytearray durchsuchen! Java Basics - Anfänger-Themen 6
G String durchsuchen Java Basics - Anfänger-Themen 14
S Arraylist durchsuchen und werte speichern Java Basics - Anfänger-Themen 14
M String durchsuchen Java Basics - Anfänger-Themen 2
T Ordner nach Dateien durchsuchen Java Basics - Anfänger-Themen 2
G array (BigInteger) durchsuchen Java Basics - Anfänger-Themen 2
G ArrayList<String> durchsuchen Java Basics - Anfänger-Themen 8
S Inhalt von Array nach Zahl durchsuchen Java Basics - Anfänger-Themen 5
O Überladene Methode + durchsuchen der ArrayList Java Basics - Anfänger-Themen 14
M Sortierte Liste nach Wert durchsuchen Java Basics - Anfänger-Themen 8
J Hashmap durchsuchen Java Basics - Anfänger-Themen 2
N Unterordner durchsuchen Java Basics - Anfänger-Themen 2
T Datei nach Schlüsselwörtern durchsuchen Java Basics - Anfänger-Themen 7
O Liste durchsuchen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben