tnx! :)
On Nov 24, 2007 3:32 PM, Domen Grabec <[EMAIL PROTECTED]> wrote:
> Za tiste, ki ste se odločili, da boste zadomačo nalogo izbrali zahodne
> filozofe, sem napisal en parser, ki poparsa tisto vhodno datoteko iz
> neta v java.util.List, kjer so objekti tipa Person. Person je pa inner
> class v projektu. Parse metoda je nepregledno napisana vendar dela :).
>
> Vse kar morate spremeniti je vaš file location: (ni mi še uspelo, da
> bi jih relativno na projekt bral)
> final String FILE_LOCATION = "C:\\phil_tline.txt";
>
> Še koda:
>
> import java.util.List;
> import java.util.LinkedList;
>
> public class MyDemo extends PApplet { // Objektno dedovan applet
>
> void setup()
> {
> final String FILE_LOCATION = "C:\\phil_tline.txt";
> size(640, 480);
> List personList = parseFile(FILE_LOCATION);
> this.printOutPersonList(personList);
>
> }
>
> void draw()
> {
> background(255);
>
> }
>
> public List parseFile(String fileLocation){
> List personList = new LinkedList();
> InputStream is = null;
>
> try {
> is = new FileInputStream(new File(fileLocation));
>
> BufferedReader br = new BufferedReader(new
> InputStreamReader(is));
> String line;
> while((line=br.readLine()) != null)
> {
> boolean bce = false;
> boolean bceCe = false;
> //Author regex
> Pattern pat = Pattern.compile("^(\\D*)(c\\.)");
> Matcher mat = pat.matcher(line);
>
> //Birth regex
> Pattern pat1 = Pattern.compile("(\\d*)");
>
> //Death regex
> Pattern pat2 = Pattern.compile("\\b(\\d*)");
> //Get Living 1
> Pattern pat3 = Pattern.compile("BCE");
> //Get Living 2
> Pattern pat4 = Pattern.compile("CE");
>
> //Get description
> Pattern pat5 = Pattern.compile("(\\.)(.*)(\\.)");
>
>
> if(mat.find())
> {
> String person = mat.group();
> //Get the ".c" out
> person = person.substring(0, person.length() -
> 2);
> //Delete person from line
> String startAge = mat.replaceFirst("");
> //Get wrid of whitespace
> if(startAge.charAt(0) == ' ')
> startAge = startAge.substring(1,
> startAge.length());
>
> String ageStr = "";
> mat = pat1.matcher(startAge);
> String deathStr = "";
> if(mat.find()){
> ageStr = mat.group();
> deathStr = mat.replaceFirst("");
>
> }
> int age = Integer.valueOf(ageStr).intValue();
>
> mat = pat3.matcher(deathStr);
> if(mat.find()){
> bce = true;
> deathStr = mat.replaceAll("");
> }
>
> mat = pat4.matcher(deathStr);
> if(mat.find()){
> bceCe = true;
> }
>
> mat = pat2.matcher(deathStr);
>
> String deathS = "";
> if(mat.find()){
> deathS = mat.group();
> deathStr = mat.replaceFirst("");
> }
> int death = Integer.valueOf(deathS).intValue();
>
> mat = pat5.matcher(deathStr);
> String desc = "";
> if(mat.find()){
> desc = mat.group();
> desc = desc.substring(1, desc.length()-1);
> }
> //System.out.println("START" + deathStr +
> "END");
> if(bce){
> age = 0 -age;
> death = 0 -death;
> if(bceCe)
> death = Math.abs(death);
> }
> //System.out.println("DATA: PERSON" +
> person + " Birth:" + age + " Death:" + death + " Desc:" + desc);
> Person per = new Person(person, age, death,
> desc);
> personList.add(per);
> }
> //System.out.println(line);
> }
> }
> catch (IOException e) {
> e.printStackTrace();
> }
>
> return personList;
> }
>
> public void printOutPersonList(List list){
> for(int i = 0; i < list.size() ; i++){
> Person temp = (Person)list.get(i);
> System.out.println("Name: " + temp.getName() + " Birth: " +
> temp.getBorn() + " Died: " +
> temp.getDied() + " Description: " +
> temp.getDescription());
> }
> }
>
> public class Person{
> private String name;
> private int born;
> private int died;
> private String description;
>
> public Person(String name,
> int born,
> int died,
> String description){
>
> this.name = name;
> this.born = born;
> this.died = died;
> this.description = description;
> }
>
> public String getName() {
> return name;
> }
> public void setName(String name) {
> this.name = name;
> }
> public int getBorn() {
> return born;
> }
> public void setBorn(int born) {
> this.born = born;
> }
> public int getDied() {
> return died;
> }
> public void setDied(int died) {
> this.died = died;
> }
> public String getDescription() {
> return description;
> }
> public void setDescription(String description) {
> this.description = description;
> }
> }
> }
>
> LP, Domen
>
--
Jernej Vrčko
MSN messenger: [EMAIL PROTECTED]
SKYPE: kekecpasteta