Commandline Interface hinzugefügt

Main Methode angepasst
This commit is contained in:
2016-05-24 19:20:26 +02:00
parent fc6cd439e2
commit 8a5e05083d
5 changed files with 266 additions and 41 deletions

124
.idea/workspace.xml generated
View File

@@ -2,11 +2,10 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e8709267-1337-4638-85fd-ec9407fa5fdd" name="Default" comment=""> <list default="true" id="e8709267-1337-4638-85fd-ec9407fa5fdd" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/com/structix/CommandLineInterface.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Main.class" afterPath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Main.class" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Main.class" afterPath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Main.class" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Analyse.java" afterPath="$PROJECT_DIR$/src/com/structix/Analyse.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Main.java" afterPath="$PROJECT_DIR$/src/com/structix/Main.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Main.java" afterPath="$PROJECT_DIR$/src/com/structix/Main.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Menu.java" afterPath="$PROJECT_DIR$/src/com/structix/Menu.java" />
</list> </list>
<ignored path="Textanalyse.iws" /> <ignored path="Textanalyse.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
@@ -32,13 +31,26 @@
<file leaf-file-name="Main.java" pinned="false" current-in-tab="true"> <file leaf-file-name="Main.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java"> <entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504"> <state relative-caret-position="143">
<caret line="28" column="30" selection-start-line="28" selection-start-column="30" selection-end-line="28" selection-end-column="30" /> <caret line="29" column="30" selection-start-line="29" selection-start-column="30" selection-end-line="29" selection-end-column="30" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="CommandLineInterface.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/structix/CommandLineInterface.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216">
<caret line="12" column="172" selection-start-line="12" selection-start-column="172" selection-end-line="12" selection-end-column="172" />
<folding>
<element signature="e#3891#3892#0" expanded="true" />
<element signature="e#3945#3946#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Beispieltext.txt" pinned="false" current-in-tab="false"> <file leaf-file-name="Beispieltext.txt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Beispieltext.txt"> <entry file="file://$PROJECT_DIR$/Beispieltext.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
@@ -52,8 +64,8 @@
<file leaf-file-name="Analyse.java" pinned="false" current-in-tab="false"> <file leaf-file-name="Analyse.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java"> <entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3582"> <state relative-caret-position="1294">
<caret line="207" column="41" selection-start-line="207" selection-start-column="41" selection-end-line="207" selection-end-column="41" /> <caret line="81" column="52" selection-start-line="81" selection-start-column="52" selection-end-line="81" selection-end-column="52" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -82,8 +94,8 @@
<file leaf-file-name="Menu.java" pinned="false" current-in-tab="false"> <file leaf-file-name="Menu.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java"> <entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state relative-caret-position="36">
<caret line="8" column="15" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" /> <caret line="31" column="49" selection-start-line="31" selection-start-column="49" selection-end-line="31" selection-end-column="49" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -113,6 +125,7 @@
<option value="$PROJECT_DIR$/Test.txt" /> <option value="$PROJECT_DIR$/Test.txt" />
<option value="$PROJECT_DIR$/src/com/structix/Menu.java" /> <option value="$PROJECT_DIR$/src/com/structix/Menu.java" />
<option value="$PROJECT_DIR$/src/com/structix/Analyse.java" /> <option value="$PROJECT_DIR$/src/com/structix/Analyse.java" />
<option value="$PROJECT_DIR$/src/com/structix/CommandLineInterface.java" />
<option value="$PROJECT_DIR$/src/com/structix/Main.java" /> <option value="$PROJECT_DIR$/src/com/structix/Main.java" />
</list> </list>
</option> </option>
@@ -152,9 +165,6 @@
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="PackagesPane" />
<pane id="Scratches" />
<pane id="Scope" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<PATH> <PATH>
@@ -193,6 +203,9 @@
</PATH> </PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="Scratches" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
@@ -206,10 +219,10 @@
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" value="com.structix.Main" /> <option name="MAIN_CLASS_NAME" value="com.structix.Main" />
<option name="VM_PARAMETERS" value="" /> <option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" /> <option name="PROGRAM_PARAMETERS" value="Test.txt -b -v -w -ha" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" /> <option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" /> <option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" /> <option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
@@ -631,11 +644,13 @@
<workItem from="1463492544438" duration="867000" /> <workItem from="1463492544438" duration="867000" />
<workItem from="1463653975356" duration="937000" /> <workItem from="1463653975356" duration="937000" />
<workItem from="1463735643744" duration="4784000" /> <workItem from="1463735643744" duration="4784000" />
<workItem from="1464077414443" duration="837000" />
<workItem from="1464104232545" duration="6138000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="33184000" /> <option name="totallyTimeSpent" value="40159000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="0" y="0" width="2560" height="1398" extended-state="6" /> <frame x="0" y="0" width="2560" height="1398" extended-state="6" />
@@ -690,6 +705,46 @@
<option name="FILTER_TARGETS" value="false" /> <option name="FILTER_TARGETS" value="false" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/Beispieltext.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3582">
<caret line="207" column="41" selection-start-line="207" selection-start-column="41" selection-end-line="207" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menubuilder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2088">
<caret line="120" column="0" selection-start-line="120" selection-start-column="0" selection-end-line="120" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Test.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="3" selection-start-line="2" selection-start-column="3" selection-end-line="2" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="8" column="15" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java"> <entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
@@ -1010,14 +1065,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menubuilder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2088">
<caret line="120" column="0" selection-start-line="120" selection-start-column="0" selection-end-line="120" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Test.txt"> <entry file="file://$PROJECT_DIR$/Test.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36"> <state relative-caret-position="36">
@@ -1026,26 +1073,45 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java"> <entry file="file://$PROJECT_DIR$/src/com/structix/Menubuilder.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state relative-caret-position="2088">
<caret line="8" column="15" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" /> <caret line="120" column="0" selection-start-line="120" selection-start-column="0" selection-end-line="120" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java"> <entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3582"> <state relative-caret-position="1294">
<caret line="207" column="41" selection-start-line="207" selection-start-column="41" selection-end-line="207" selection-end-column="41" /> <caret line="81" column="52" selection-start-line="81" selection-start-column="52" selection-end-line="81" selection-end-column="52" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="31" column="49" selection-start-line="31" selection-start-column="49" selection-end-line="31" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/CommandLineInterface.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216">
<caret line="12" column="172" selection-start-line="12" selection-start-column="172" selection-end-line="12" selection-end-column="172" />
<folding>
<element signature="e#3891#3892#0" expanded="true" />
<element signature="e#3945#3946#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java"> <entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504"> <state relative-caret-position="143">
<caret line="28" column="30" selection-start-line="28" selection-start-column="30" selection-end-line="28" selection-end-column="30" /> <caret line="29" column="30" selection-start-line="29" selection-start-column="30" selection-end-line="29" selection-end-column="30" />
<folding /> <folding />
</state> </state>
</provider> </provider>

View File

@@ -0,0 +1,145 @@
package com.structix;
import java.util.Scanner;
/**
* Created by structix on 24.05.16.
*/
public class CommandLineInterface {
private String cmds[];
private String cmdseinzeln[];
private String kommandos[] = {"-h", "-?", "--help", "--credits", "-w", "-v", "-b", "-ha"};
private String hilfe[] = {"Hilfe", "Hilfe", "Hilfe", "Credits", "Anzahl der Wörter", "Anzahl der verwschiedenen Wörter", "Anzahl der Buchstaben", "Häufigkeit der Wörter"};
String dateipfad = "";
int dateipfadstelle = -1;
public CommandLineInterface(String args[]) {
cmds = args;
verschiedenCmds();
}
public boolean argTest() {
boolean rueckgabe = false;
if (cmds.length > 0) {
rueckgabe = true;
}
return rueckgabe;
}
private boolean gueltigkeit() {
int i = 0, dateizaehler = 0;
boolean ungueltig = false, vorhanden;
while (i < cmdseinzeln.length && !ungueltig) {
if (cmdseinzeln[i].substring(0, 1).equals("-") && cmdseinzeln[i].length() > 1) {
vorhanden = false;
for (int z = 0; z < kommandos.length; z++) {
if (cmdseinzeln[i].equals(kommandos[z])) {
vorhanden = true;
}
}
if (!vorhanden) {
ungueltig = true;
}
} else {
if (cmdseinzeln[i].matches("[a-zA-Z0-9]+.[a-zA-Z]{3}")) {
dateipfad = cmdseinzeln[i];
dateizaehler++;
if (dateizaehler > 1) {
ungueltig = true;
}
}
}
i++;
}
return !ungueltig;
}
public void ausfuehren() {
if (gueltigkeit()) {
String datei = dateipfad;
if (datei.isEmpty()) {
System.out.println("Geben Sie einen Dateipfad an (relativ sowie absolut erlaubt): ");
Scanner eingabe = new Scanner(System.in);
datei = eingabe.nextLine();
}
Analyse an = new Analyse(datei);
for (int i = 0; i < cmdseinzeln.length; i++) {
if (i != dateipfadstelle) {
switch (cmdseinzeln[i]) {
case "-h":
case "-?":
case "--help":
System.out.println(hilfe());
break;
case "--credits":
System.out.println(credits());
break;
case "-w":
System.out.println("Anzahl der Wörter: " + an.laenge());
break;
case "-v":
System.out.println("Anzahl der verschiedenen Wörter: " + an.verschiedenWoerter());
break;
case "-b":
System.out.println("Anzahl der Buchstaben (inklusive Leerzeichen): " + an.anzBuchstabenMLeerzeichen());
System.out.println("Anzahl der Buchstaben (ohne Leerzeichen): " + an.anzBuchstabenOLeerzeichen());
break;
case "-ha":
System.out.println(an.haeufigkeit());
break;
}
}
}
} else {
System.out.println("Ungültige Argumente");
}
}
private String hilfe() {
String hilfeText = "Benutzung: Textanalyse <Dateipfad>\n";
for (int i = 0; i < kommandos.length; i++) {
hilfeText += kommandos[i] + " - " + hilfe[i] + "\n";
}
return hilfeText;
}
private String credits() {
return "Muss noch geschrieben werden.";
}
private void verschiedenCmds() {
String tempCmds[] = new String[cmds.length];
boolean vorhanden;
int tbelegt = 0;
for (int i = 0; i < cmds.length; i++) {
vorhanden = false;
for (int z = 0; z < tempCmds.length; z++) {
if (cmds[i].equals(tempCmds[z])) {
vorhanden = true;
}
}
if (!vorhanden) {
tempCmds[tbelegt] = cmds[i];
tbelegt++;
}
}
cmdseinzeln = new String[tbelegt];
for (int i = 0; i < tbelegt; i++) {
cmdseinzeln[i] = tempCmds[i];
}
}
}

View File

@@ -27,11 +27,19 @@ package com.structix;
* 16.05.16: 20:47 - 21:44 Uhr * 16.05.16: 20:47 - 21:44 Uhr
* 17.05.16: 11:59 - 12:37 Uhr * 17.05.16: 11:59 - 12:37 Uhr
* 20.05.16: 11:18 - 12:32 Uhr * 20.05.16: 11:18 - 12:32 Uhr
* 24:05.16: 17:46 - 19:17 Uhr
*/ */
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
CommandLineInterface cmd = new CommandLineInterface(args);
if (!cmd.argTest()) {
//Menüteil wird ausgeführt, wenn keine Argumente übergeben werden
//Menü Objekt wird erzeugt //Menü Objekt wird erzeugt
Menu m = new Menu(); Menu m = new Menu();
//Auskommentieren, um einen Dateipfad einzugeben //Auskommentieren, um einen Dateipfad einzugeben
@@ -45,5 +53,11 @@ public class Main {
while (!m.hauptmenu()) ; while (!m.hauptmenu()) ;
//Nachricht vor dem Beenden des Programms //Nachricht vor dem Beenden des Programms
System.out.println("Auf Wiedersehen!"); System.out.println("Auf Wiedersehen!");
} else {
//Commandline Part
cmd.ausfuehren();
}
} }
} }