а id2 пропускает ...
вот код
-----------------------------------------
import java.io.*; import java.util.*; class myrdf { public static void main(String [] args) throws Exception { if(args.length != 1) { System.out.println("Sorry! You must enter your arguments!"); System.exit(1); } String [] _args = args[0].split(" "); String command = ""; String filename = ""; String id = ""; String properties = ""; String vaartsus = ""; try { if(_args[0].equals("omabsumma") && (_args.length == 4 || _args.length == 6)) { command = _args[0].trim(); filename = _args[1].trim(); if(!_args[2].trim().equals("where")) throw new Exception("Unknown command" + _args[2]); try { StringTokenizer TempId = new StringTokenizer(_args[3].trim(), "="); if(!TempId.nextToken().equals("id")) throw new Exception("Unknown command"); id = TempId.nextToken(); } catch (NoSuchElementException e) { throw new Exception("Unknown command " + _args[3]); } if(_args.length == 6){ if(!_args[4].trim().equals("and")) throw new Exception("Unknown command " + _args[4]); try { StringTokenizer TempProp = new StringTokenizer(_args[5].trim(), "="); properties = TempProp.nextToken(); vaartsus = TempProp.nextToken(); } catch (NoSuchElementException e) { throw new Exception("Unknown command " + _args[5]); } } System.out.println(rdf_omabsumma(filename, id, properties, vaartsus)); } else if(_args[0].equals("kesomabmax") && (_args.length == 2 || _args.length == 4)) { command = _args[0].trim(); filename = _args[1].trim(); if(_args.length == 4){ if(!_args[2].trim().equals("where")) throw new Exception("Unknown command " + _args[2]); try { StringTokenizer TempProp = new StringTokenizer(_args[3].trim(), "="); properties = TempProp.nextToken(); vaartsus = TempProp.nextToken(); } catch (NoSuchElementException e) { throw new Exception("Unknown command " + _args[3]); } } System.out.println(rdf_kesomabmax(filename, properties, vaartsus)); } else { throw new Exception("Valed argumendid!"); } } catch(Exception e) { System.out.println("Viga! " + e); System.exit(1); } } public static String rdf_omabsumma(String filename, String id, String properties, String vaartsus) { String DAB [][]; // database String ID = id; Integer vaartus = new Integer(0); if((DAB = ArrayGen(filename)) == null) System.exit(1); for(int i = 0; i < DAB.length; i++) { if(DAB[i][0].equals(ID) && DAB[i][1].equals("omab") && DAB[i][3].equals("uri")) { try { vaartus.decode(DAB[i][2]); ID = DAB[i][2]; } catch (NumberFormatException e) { String [] Temp = DAB[i][2].split("#"); if(Temp.length != 2) { System.out.println("Viga failis " + filename); return null; } vaartus += vaartus.decode(rdf_omabsumma(Temp[0], Temp[1], properties, vaartsus)); } } if(properties.equals("") && vaartsus.equals("")) { if(ID != id) { for(int j = 0; j < DAB.length; j++) if(DAB[j][0].equals(ID) && DAB[j][1].equals("hind") && DAB[j][3].equals("integer")) vaartus += vaartus.decode(DAB[j][2]); ID = id; } else { if(DAB[i][0].equals(ID) && DAB[i][1].equals("hind") && DAB[i][3].equals("integer")) vaartus += vaartus.decode(DAB[i][2]); } } if(!properties.equals("") && !vaartsus.equals("")) { if(ID != id) { for(int l = 0; l < DAB.length; l++) if(DAB[l][0].equals(ID) && DAB[l][1].equals(properties) && DAB[l][2].equals(vaartsus)) for(int k = l+1; k < DAB.length; k++) if(DAB[k][0].equals(ID) && DAB[k][1].equals("hind") && DAB[k][3].equals("integer")) { vaartus += vaartus.decode(DAB[k][2]); break; } ID = id; } else { if(DAB[i][0].equals(ID) && DAB[i][1].equals(properties) && DAB[i][2].equals(vaartsus)) for(int k = i+1; k < DAB.length; k++) if(DAB[k][0].equals(ID) && DAB[k][1].equals("hind") && DAB[k][3].equals("integer")) { vaartus += vaartus.decode(DAB[k][2]); //String -> Integer break; } } } } // for return vaartus.toString(); } public static String rdf_kesomabmax(String filename, String properties, String vaartsus) { String DAB [][]; // database String ID = ""; String AllID = ""; String GotID = ""; String EndID = ""; String Temp = ""; Integer vaartus = new Integer(0); Integer vaartus2 = new Integer(0); if((DAB = ArrayGen(filename)) == null) System.exit(1); for(int i = 0; i < DAB.length; i++){ AllID = AllID + DAB[i][0] + " "; if(DAB[i][1].equals("omab")) GotID = GotID + DAB[i][2] + " "; } String [] IDArray = AllID.split(" "); String [] GotArray = GotID.split(" "); Bubble_Sort(IDArray); for(int i = 0; i < IDArray.length; i++) { if(!Temp.equals(IDArray[i])) EndID = EndID + IDArray[i] + " "; Temp = IDArray[i]; } String [] EndArray = EndID.split(" "); EndID= ""; for(int i = 0, y = 0; i < EndArray.length; i++) { for(int j = 0; j < GotArray.length; j++) { if(EndArray[i].equals(GotArray[j])) y = 1; } if(y != 1) EndID = EndID + EndArray[i] + " "; y = 0; } String [] TheEnd = EndID.split(" "); for(int i = 0; i < TheEnd.length; i++) { vaartus2 = vaartus.decode(rdf_omabsumma(filename, TheEnd[i], properties, vaartsus)); if(vaartus < vaartus2) ID = TheEnd[i]; vaartus= vaartus2; } if(ID.equals("")) ID = null; return ID; } public static String[][] ArrayGen(String filename) { int TdAll = 0; int TdCalc = 0; int ElemCalc = 0; String TdNow; String AB [][] = {}; String [] Temp = {}; try { FileInputStream File = new FileInputStream(filename); BufferedReader br_reader = new BufferedReader(new InputStreamReader(File)); TdNow = br_reader.readLine(); while (TdNow != null) { if(TdNow.trim().length() != 0) TdAll++; TdNow = br_reader.readLine(); } AB = new String[TdAll][4]; File.getChannel().position(0); TdNow = br_reader.readLine(); TdCalc = 0; while (TdNow != null) { if(TdNow.trim().length() != 0) { Temp = TdNow.split(","); if(Temp.length != 4) { System.out.println("Viga failis " + filename); return null; } for(int i = 0; i < 4; i++) AB[TdCalc][i] = Temp[i]; TdCalc++; } TdNow = br_reader.readLine(); } br_reader.close(); File.close(); } catch (IOException e) { System.out.println(e); return null; } return AB; } public static void Bubble_Sort(String b[]) { Integer vaartus = new Integer(0); String Temp = ""; for(int j = 0; j < b.length-1; j++) for(int i = 0; i < b.length-j-1; i++) if((vaartus = vaartus.decode(b[i])) > (vaartus = vaartus.decode(b[i+1]) { Temp = b[i]; b[i] = b[i+1]; b[i+1] = Temp; } } }
---------------------------
вот файл 1
1,omab,7,uri
2,omab,8,uri
7,tyyp,maja,string
7,hind,5,integer
8,tyyp,maja,string
8,hind,44,integer
1,omab,autod.csv#2,uri
2,omab,autod.csv#1,uri
----------------------------
вот второй
1,tyyp,auto,string
2,tyyp,auto,string
1,mark,opel,string
2,mark,cadillac,string
1,hind,1,integer
2,hind,545,integer
в чём косяк? =) объясните..
Сообщение изменено: Antiseptic (18 декабря 2006 - 20:43 )