Hallo
Ich habe mit folgendem Code ein Problem:
Er liest eben von einer Datei aus und soll die letzten 4 Zeichen nehmen nur hängt er sich nach einer Zeit oder bei einem Beispiel auf und gibt dann nichts mehr zurück.
Hab jetzt nur irgendwie (wirklich irgendwie) so programmiert das er sich die letzten 4 zeichen holt nur klappt das dann leider doch nicht da er selber Interpretiert oder so..
So sieht das dann aus und die Datei sieht folgendermaßen aus:
und soll nur die 0021 einlesen.
Ich habe mit folgendem Code ein Problem:
Java:
void countPIM(String date) {
int z = 0;
for(int i = 0; i < NFCCode.length; i++) {
try {
p = Pattern.compile("LFDO"+NFCCode[i]+"PIM_"+date+"[0-9]*.[0-9]*");
File dir = new File(NFCBase+NFCCode[i]+FileBase);
String[] directory = dir.list();
int charArrayLaenge;
for(int j = 0; j< directory.length; j++) {
int x = 0;
m = p.matcher(directory[j]);
# Ab hier -
if(m.matches()) {
File PINFile = new File(NFCBase+NFCCode[i]+FileBase+directory[j]);
long datenStromLaenge = PINFile.length()+1;
charArrayLaenge = (int)datenStromLaenge-1;
char[] charArray = new char[charArrayLaenge];
FileReader dateiInhalt = new FileReader(PINFile);
BufferedReader datenStrom = new BufferedReader(dateiInhalt);
datenStrom.read(charArray,0,(charArrayLaenge));
datenStrom.close();
//System.out.println(charArray);
String Linie = "";
for(int l = 0; l < charArrayLaenge; l++) {
String MSGCODE = "", Pat = "", cardno = "";
//System.out.println(charArray[l] + charArray[l+1]);
if(charArray[l] == 10) {
if(charArray[l+1] == 56 && charArray[l+2] == 49) {
try {
Pat += String.valueOf(charArray[l+13]) + String.valueOf(charArray[l+14]);
for(int k1 = 54; k1<230; k1++) {
if(charArray[k1 + l] == 50 && charArray[k1 + l + 1] == 48) {
MSGCODE += String.valueOf(charArray[k1+l+14]) + String.valueOf(charArray[k1+l+15]) + String.valueOf(charArray[k1+l+16]) + String.valueOf(charArray[k1+l+17]);
break;
}
}
# Bis hier -
for(int k = 15; k<33; k++) {
cardno += String.valueOf(charArray[l+k]);
}
//System.out.println(cardno + " || " + MSGCODE);
Pattern p = Pattern.compile("[AC][1-5]");
Matcher n = p.matcher(Pat);
boolean a = false;
if(n.matches()) {
z++;
x++;
Enumeration e = Cards.elements();
while(e.hasMoreElements()) {
Card c = (Card)e.nextElement();
if(c.getNumber().equals(cardno)) {
c.setPim(date);
c.setMSG(MSGCODE);
a = true;
break;
}
}
if(a==false) {
Cards.add(new Card(Linie.substring(14,32),date,"O"+NFCCode[i],MSGCODE));
}
}
}
catch (StringIndexOutOfBoundsException sio) {
//System.out.println("Fehler");
}
}
}
//System.out.println(cardno + " || " + MSGCODE);
}
System.out.println("Karten im Pimfile O"+NFCCode[i]+": "+x);
}
}
}
catch (Exception e1) {
System.out.println("Karten im Pimfile O"+NFCCode[i]+": 0");
}
//System.out.println(Cards.size());
}
System.out.println("Karten PIM gesamt: " +z);
}
Er liest eben von einer Datei aus und soll die letzten 4 Zeichen nehmen nur hängt er sich nach einer Zeit oder bei einem Beispiel auf und gibt dann nichts mehr zurück.
Hab jetzt nur irgendwie (wirklich irgendwie) so programmiert das er sich die letzten 4 zeichen holt nur klappt das dann leider doch nicht da er selber Interpretiert oder so..
Code:
-------------------Check MSG - Codes--------------------
710106172221000171 => Error || Message: MSGCode - 39 Fehlende Daten für die Krypt. , Customer - 172221 - Cardnumber -17
710106890095000445 => Error || Message: MSGCode - 39 Fehlende Daten für die Krypt. , Customer - 890095 - Cardnumber -44
710105001682072349 => null || Message: null
So sieht das dann aus und die Datei sieht folgendermaßen aus:
Code:
310000000754A1051RTX 2710105001682072315 000010000 000000000000000710105001682049628 Ȳó'v‚ÿÿÿÿ
450000000754710105001682072315 0WABERER'S INTERNATIONAL Zrt. KTC-837Nagykõrösi út 351. HUN1239 BUDAPEST HUN05
810000000754A2710105001682072315 3226 0000000q¾—M#ßÂÿÿÿÿ20090805131047[B]0021[/B]