Hallo Leute,
Ich habe ein kleines Problem mit Java Eclipse Programmieren, bin zwar noch Anfänger mit Programmierung, bitte euch um Hilfe.
Meine Aufgabe ist Txt Datei lesen, suchen nach einem String und mit split in ArrayList speichern.
TXT Datei sieht so aus:
KI_ 133 abc : 100 def
LL_ name : 9|1@1+ (11,12) [1|0] "" abc
Ergebnis möchte ich LL_ String auslesen:
tmpList[0] = LL_
tmpList[1] = name
tmpList[2] = 9
tmpList[3] = 1
tmpList[4] = 1
tmpList[5] = +
tmpList[6] = 11
tmpList[7] = 12
tmpList[8] = 1
tmpList[9] = 0
tmpList[10] = ""
tmpList[11] = abc
mein Code:
public class LL_ {
String Signal_Name;
int Start_Bit;
int Signal_Size;
String Byte_Order;
String Value_Type;
double Faktor, Offset;
double Minimum, Maximum;
String Unit;
String Receiver;
}
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.util.ArrayList;
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
DataInputStream fin = new DataInputStream(new BufferedInputStream(new FileInputStream("test.txt")));
String tmp = new String();
ArrayList<LL_> sgTmp = new ArrayList<LL_>();
while((tmp = fin.readLine())!=null){
String delimeters = "[\\s:|||@|(|)|,\\s*|\\[\\s*\\s*|\\]\\s*]+";
//Analyze the string
String[] tmpList = tmp.split(delimeters);
if(tmpList[0].equalsIgnoreCase("LL_")){
LL_ lk = new LL_();
lk.Signal_Name = tmpList[1];
sg.Start_Bit = Integer.parseInt(tmpList[2]);
sg.Signal_Size = Integer.parseInt(tmpList[3]);
//Byte_order 0-Intel 1-Motorola
if(tmpList[4] == "0"){
tmpList[4] = "Intel";
sg.Byte_Order = tmpList[5];
}else if(tmpList[4] == "1"){
tmpList[4] = "Motorola";
sg.Byte_Order = tmpList[5];
}
//SG Value Type +=unsigned -=signed
if(tmpList[5]=="+"){
tmpList[5] = "unsigned";
sg.Value_Type = tmpList[5];
}else if(tmpList[5]=="-"){
tmpList[5] = "signed";
sg.Value_Type = tmpList[5];
}
sg.Faktor = Double.parseDouble(tmpList[6]);
sg.Offset = Double.parseDouble(tmpList[7]);
sg.Minimum = Double.parseDouble(tmpList[8]);
sg.Maximum = Double.parseDouble(tmpList[9]);
sg.Unit = tmpList[10];
sg.Receiver = tmpList[11];
int i=0;
while(tmpList[i + 12]!=null){
sg.Receiver = tmpList[i+12];
i++;
}
sgTmp.add(sg);
System.out.println(lk.Start_Bit);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Frage:
1. wie kann ich 1+ trennen zu 1 und +
2. Ich habe probiert mir System.out.println(lk.Startbit) aber es passiert nicht, sollte 9 sein
Ich habe ein kleines Problem mit Java Eclipse Programmieren, bin zwar noch Anfänger mit Programmierung, bitte euch um Hilfe.
Meine Aufgabe ist Txt Datei lesen, suchen nach einem String und mit split in ArrayList speichern.
TXT Datei sieht so aus:
KI_ 133 abc : 100 def
LL_ name : 9|1@1+ (11,12) [1|0] "" abc
Ergebnis möchte ich LL_ String auslesen:
tmpList[0] = LL_
tmpList[1] = name
tmpList[2] = 9
tmpList[3] = 1
tmpList[4] = 1
tmpList[5] = +
tmpList[6] = 11
tmpList[7] = 12
tmpList[8] = 1
tmpList[9] = 0
tmpList[10] = ""
tmpList[11] = abc
mein Code:
public class LL_ {
String Signal_Name;
int Start_Bit;
int Signal_Size;
String Byte_Order;
String Value_Type;
double Faktor, Offset;
double Minimum, Maximum;
String Unit;
String Receiver;
}
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.util.ArrayList;
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
DataInputStream fin = new DataInputStream(new BufferedInputStream(new FileInputStream("test.txt")));
String tmp = new String();
ArrayList<LL_> sgTmp = new ArrayList<LL_>();
while((tmp = fin.readLine())!=null){
String delimeters = "[\\s:|||@|(|)|,\\s*|\\[\\s*\\s*|\\]\\s*]+";
//Analyze the string
String[] tmpList = tmp.split(delimeters);
if(tmpList[0].equalsIgnoreCase("LL_")){
LL_ lk = new LL_();
lk.Signal_Name = tmpList[1];
sg.Start_Bit = Integer.parseInt(tmpList[2]);
sg.Signal_Size = Integer.parseInt(tmpList[3]);
//Byte_order 0-Intel 1-Motorola
if(tmpList[4] == "0"){
tmpList[4] = "Intel";
sg.Byte_Order = tmpList[5];
}else if(tmpList[4] == "1"){
tmpList[4] = "Motorola";
sg.Byte_Order = tmpList[5];
}
//SG Value Type +=unsigned -=signed
if(tmpList[5]=="+"){
tmpList[5] = "unsigned";
sg.Value_Type = tmpList[5];
}else if(tmpList[5]=="-"){
tmpList[5] = "signed";
sg.Value_Type = tmpList[5];
}
sg.Faktor = Double.parseDouble(tmpList[6]);
sg.Offset = Double.parseDouble(tmpList[7]);
sg.Minimum = Double.parseDouble(tmpList[8]);
sg.Maximum = Double.parseDouble(tmpList[9]);
sg.Unit = tmpList[10];
sg.Receiver = tmpList[11];
int i=0;
while(tmpList[i + 12]!=null){
sg.Receiver = tmpList[i+12];
i++;
}
sgTmp.add(sg);
System.out.println(lk.Start_Bit);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Frage:
1. wie kann ich 1+ trennen zu 1 und +
2. Ich habe probiert mir System.out.println(lk.Startbit) aber es passiert nicht, sollte 9 sein