Variablen in Textdatei dynamisch definieren (auffüllen)

Maddili

Mitglied
Hi, ich habe eine Konfigurationsdatei mit verschiedenen Variablen.
Die Variablen werden definiert von:

DigitalInput01a, DigitalInput01b, ...bis... ,DigitalInput01g
DigitalInput02a, DigitalInput02b, ...bis... ,DigitalInput02g
...bis...
DigitalInput06a, DigitalInput06b, ...bis... ,DigitalInput06g

Meine Konfigurationsdatei wird zeilenweise ausgelesen, ge'tokenized' und verglichen.
Ist ein Vergleich true, wird der Token (z.B. DigitaInput01a) in ein TreeSet geschrieben.

Wenn ich mein TreeSet ausgebe, kommt (z.B.) folgendes dabei raus:

inputset:
[DigitalInput01a,
DigitalInput01b,
DigitalInput01c,
DigitalInput01d,
DigitalInput01e,
DigitalInput01f,
DigitalInput01g,
DigitalInput01h,
DigitalInput02a,
DigitalInput02b,
DigitalInput02c,
DigitalInput02d,
DigitalInput02e,
DigitalInput02f,
DigitalInput02g,
DigitalInput02h,
DigitalInput03a,
DigitalInput03b,
DigitalInput03c,
DigitalInput03d,
DigitalInput03e,
DigitalInput04a,
DigitalInput04c,
DigitalInput04e,
DigitalInput04f]

Wie zu sehen ist, fehlt DigitalInput3f und 3g, sowie 4b und 4d.

Meine Frage:
Ist es möglich (wenn ja, WIE?) die Variablen dynamisch zu setzen? Dass eben erstmal DigitalInput03x 'aufgefüllt' wird und dann mit 4a, 4b, 4c, 4d weitergemacht wird. D.h.: KEINE Lücke in der Var.Definition.

Irgendwelche Ideen****?

mfg
Maddin
 
Hier noch mein bisheriger Quellcode:

Java:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeSet;

public class dynamicGeneration3 {

	public static String erstelltedatei = Aktionen.pfad + Aktionen.name
			+ ".txt";
	public static TreeSet<String> inputset = new TreeSet<String>();
	public static HashSet<String> hashset = new HashSet<String>();
	public static char[] inputchar = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' };
	public static int[] inputint = { 1, 2, 3, 4, 5, 6 };
	public static String inputstring = "DigitalInput0";

	public static void DigiInput() {
		System.out.println("dynInput : " + erstelltedatei);

/*		for (int i = 0; i < inputint.length; i++) {
			for (int j = 0; j < inputchar.length; j++) {
				String temp = inputstring + inputint[i] + inputchar[j];

				inputset.add(temp);
			}
		}
*/
		try {
			FileInputStream inputstream = new FileInputStream(erstelltedatei);
			InputStreamReader reader = new InputStreamReader(inputstream);
			BufferedReader bff = new BufferedReader(reader);
			String line = bff.readLine();

			while ((line = bff.readLine()) != null) {

				for (int i = 0; i < 20; i++) {
					String diginput = "DigitalInput0" + i;
					if (Output.tf_mlfb.getText().substring(3, 4).equals("3")
							&& line.contains(diginput)) {
						StringTokenizer st = new StringTokenizer(line);
						while (st.hasMoreTokens()) {
							String temp = st.nextToken();
							if (temp.contains("DigitalInput0")
									&& !temp.startsWith("/")) {
								// System.out.println("temp; " + temp.trim());

								if (inputset.add(temp.trim())) {
									//System.out.println("-----geaddet-------> "
									//		+ temp.trim());

								} else {
									//System.out.println("---nicht geaddet---> "
									//		+ temp.trim());

								}
							}
						}

					}
				}

			}

			System.out.println("input: " + inputset);

		} catch (Exception e) {
			System.out.println("MUH******" + e);
			e.printStackTrace();

		}
	}

}
 
Zurück