G
Gelöschtes Mitglied 5909
Gast
Zunächst erklär ich mal kurz was ich vorhabe:
Ich möchte ein kleinen board-code-converter schreiben,
der die codes zwischen zwei boards hin und her convertieren kann. (später vielleicht mehr)
Mein erstes Problem:
Wie mache ich den code möglichst universell?
Ich habe mich dafür entschieden, einen Singleton RegexManager zu schreiben, der die Regex verwaltet.
Die Regex sind in einer .txt file gespeichert und werden zunächst geladen.
(mit "," abgetrennt und split() in ein String[] geladen - eventuell schönere variante?)
Der Manager übergibgt nun meinem RegexHandler ein regex und convertiert alles für diese eine regex.
Irgendwo muss aber noch hin, welches quell und zielformat ist -
und ich will später noch ein GUI dazu schreiben (mein erstes GUI).
Wo soll der input String und der output String verwaltet werden?
was würdet ihr am design ändern?
Mein zweites Problem:
Regex.
Ich habe bisher noch nix mit Regex gemacht, außer replaceAll() und replace() vielleicht...
was für die einfachen Tags noch ok ist.
Aber wie Konvertiere ich zum Beispiel [font face=courier color=red size=4]...[/font]
in ...
und umgekehrt? Und was mach ich, wenn da außenrum noch ein Link is?
Desweiteren kann ich ja dann replaceAll() z.b. nicht mehr benutzen,
da der ja sonst mehrere unterschiedliche Links mit dem ersten Link den er findet ersetzt - oder?
Was ich bisher habe:
hier is eine übersicht der tags:
http://www.mytempdir.com/811011
Danke schonmal
Ich möchte ein kleinen board-code-converter schreiben,
der die codes zwischen zwei boards hin und her convertieren kann. (später vielleicht mehr)
Mein erstes Problem:
Wie mache ich den code möglichst universell?
Ich habe mich dafür entschieden, einen Singleton RegexManager zu schreiben, der die Regex verwaltet.
Die Regex sind in einer .txt file gespeichert und werden zunächst geladen.
(mit "," abgetrennt und split() in ein String[] geladen - eventuell schönere variante?)
Der Manager übergibgt nun meinem RegexHandler ein regex und convertiert alles für diese eine regex.
Irgendwo muss aber noch hin, welches quell und zielformat ist -
und ich will später noch ein GUI dazu schreiben (mein erstes GUI).
Wo soll der input String und der output String verwaltet werden?
was würdet ihr am design ändern?
Mein zweites Problem:
Regex.
Ich habe bisher noch nix mit Regex gemacht, außer replaceAll() und replace() vielleicht...
was für die einfachen Tags noch ok ist.
Aber wie Konvertiere ich zum Beispiel [font face=courier color=red size=4]...[/font]
in ...
und umgekehrt? Und was mach ich, wenn da außenrum noch ein Link is?
Desweiteren kann ich ja dann replaceAll() z.b. nicht mehr benutzen,
da der ja sonst mehrere unterschiedliche Links mit dem ersten Link den er findet ersetzt - oder?
Was ich bisher habe:
Code:
package bcc.logic;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class RegexManager {
private final static String eZBoard = "./Ezboard.txt";
private final static String vBulletin = "./vBulletin.txt";
private static RegexManager INSTANCE;
private static String[] regex;
private static String input;
private static String output;
private RegexManager() {
}
public RegexManager getInstance() {
if (INSTANCE == null) {
return new RegexManager();
} else {
return INSTANCE;
}
}
/**
* Loads regular expressions from a file, stored on the local system.
* @param file text-file with regular expressions, seperated with ",".
* @return String-array with all regular expresseions from the file.
*/
private static String[] loadRegex(File file) {
String line = "";
String regex = "";
try {
FileReader fReader = new FileReader(file);
BufferedReader buffer = new BufferedReader(fReader);
while ((line = buffer.readLine()) != null) {
regex+= line;
}
fReader.close();
buffer.close();
} catch (FileNotFoundException fnfe) {
System.err.println("File " + file + "not found");
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
regex.replaceAll("\n","");
return regex.split(",");
}
public void convertAll() {
regex = loadRegex(new File(eZBoard));
RegexHandler handler = new RegexHandler(regex[0]);
for (int i = 1; i < regex.length; i++) {
handler.convert();
handler.setRegex(regex[i]);
}
}
public static String getInput() {
return input;
}
public static void setInput(String input) {
RegexManager.input = input;
}
public static String getOutput() {
return output;
}
public static void setOutput(String output) {
RegexManager.output = output;
}
}
Code:
package bcc.logic;
public class RegexHandler {
private String regex = "";
public RegexHandler(String regex) {
this.regex = regex;
}
public String getRegex() {
return regex;
}
public void setRegex(String regex) {
this.regex = regex;
}
public void convert() {
//input String mit aktuellem regex bearbeiten
}
}
hier is eine übersicht der tags:
http://www.mytempdir.com/811011
Danke schonmal