Close
Faqja 0 prej 2 FillimFillim 12 FunditFundit
Duke shfaqur rezultatin -9 deri 0 prej 11
  1. #1
    ...gjenķ... Maska e mad
    Anėtarėsuar
    18-03-2004
    Vendndodhja
    Prage [EU]
    Postime
    1,321

    Exclamation Java - Program perpunimi i shėnimeve log

    Pershendetje....perseri....te gjitheve!
    kesaj rradhe ju shqetesoj me nje tjeter kerkese ne java!

    eshte nje file "winscp.log" i server-it winscp.vse.cz, i me te cilin kryhen veprimet. file permban ne cdo rresht te tij, 6 pjese(token) te ndara nga njera tjetra me space(hapsire bosh).
    nje shembull i nje rreshti:
    mac.infoweb.com.au - - 01/Nov/2000:02:53:11 /eng/ 10482
    pjesa 1: emri i kompjuterit, prej te cilit ka ardhur kerkesa, nqs nuk ka emer kompjuteri, atehere eshte e shkruar adresa IP.
    pjesa 2: simboli " - "
    pjesa 3: simboli " - "
    pjesa 4: ora dhe data e kerkeses
    pjesa 5: URl e kerkuar
    pjesa 6: madhesia ne byte

    detyra:
    programi shkruan emrat e domain-eve (psh. .cz .com .au) numrin e kerkesave per secilin prej tyre, dhe i rendit sipas alfabetit. Emri i file-it( .log) me te cilin punohet, duhet te shkruhet ne cmd.

    Per cfaredo lloj pyetje, mos ngurroni te pyesni!
    flmnd per vemendjen!
    p.s: po mundohem te ngarkoj winscp.log si skedar te bashkangjitur, por ka madhesia me te madhe nga ajo e lejuara.


    .
    ::|maDes!gn © 2009|::

  2. #2
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Nqs do ta kėrkoje nė C++ do ta kisha shkruajtur programin por me java nuk jam njohur ende. Megjithatė gjeta disa pjesė kodi nė internet qė besoj se do tė ndihmojnė.

    Ja kodi pėr tė ndarė njė fjali nė disa fjalė.
    Kodi:
        String aString = "word1 word2 word3";
        StringTokenizer parser = new StringTokenizer(aString);
        while (parser.hasMoreTokens()) {
            processWord(parser.nextToken());
        }
    Nga ato qė ke thėnė besoj se ty tė intereson vetėm fjala e parė (domain/ip) dhe nuk je i interesuar tek tė tjerat.

    Struktura mė e mirė pėr kėtė qė kėrkon tė bėsh ti quhet SortedMap (shqip=hartė).
    Lexo faqet mė poshtė pėr mė shumė informacion dhe shėmbuj se si pėrdoret.
    http://java.sun.com/j2se/1.4.2/docs/...SortedMap.html
    http://java.sun.com/docs/books/tutor...orted-map.html
    http://java.sun.com/docs/books/tutor...faces/map.html

    Map mund ta mendosh si njė listė ose array.
    Ēdo element i listės pėrmban njė ēift (ēelės,vlera) (key,value).
    Nė rastin tėnd harta do jetė diēka e tillė:

    [ēelės, vlera]
    [string, integer]
    [domain/ip, #kerkesave]
    [127.0.0.1, 56]
    [albasoul.com, 98]
    [forumishqiptar.com, 12]

    Nė SortedMap, tė gjitha elementet qė ti shton, renditen automatikisht sipas ēelėsit. Prandaj mė lart, 127 vjen para albasoul dhe albasoul vjen para forumit. Elementet mund tė futen vetėm njėherė nė hartė. Kur fut njėherė [albasoul.com, 0] dhe fut pėrsėri [albasoul.com, 1] nė harta do jetė vetėm [albasoul.com, 1].

    Pėr ēdo rresht tė skedarit log ti do bėsh kėtė:
    Merr fjalėn e parė tė rreshtit, ip/domain
    Nqs ip/domain/ēelėsi gjendet nė hartė //containsKey("domain");
    ---- merr vlerėn dhe rrite me 1 //setValue( getValue("domain") + 1 );
    Nqs nuk ekziston ip/domain/ēelėsi nė hartė
    ---- shtoje me vlerėn 1 //put("domain", 1);

    Tani ti do kesh njė hartė tė renditur sipas alfabetit.
    Shiko adresat qė tė kam dhėnė mė lart se kanė kod pėr diēka tė ngjashme me kėtė qė kėrkon ti.
    Edi

  3. #3
    ...gjenķ... Maska e mad
    Anėtarėsuar
    18-03-2004
    Vendndodhja
    Prage [EU]
    Postime
    1,321

    ~ "patch" ~

    Ky eshte kodi i nje programi, afersisht te ngjashem me ate te kerkuar, vetem se ne nje file .log me te njejtat parametra, programi gjen sasine e byte-ve te derguara individualisht nga secili prej domain-eve ".cz"!

    Kodi:
    import java.io.*;
    import java.util.*;
    
    public class Parser {
    	public static void main(String[] soubor){
    		TreeMap map = new TreeMap();
    		
    		if (soubor.length>0){ 	
            	try {
    	        	BufferedReader souborBR = new BufferedReader(new   FileReader(soubor[0])); //lexohet file
        	    	String radek;
            		while ((radek = souborBR.readLine()) != null){	        
            			StringTokenizer st=new StringTokenizer(radek);	//ndahet rreshti i lexuar ne pjese
    	       				for(int i=0;i<5;i++){		//    	   		 			st.nextToken();
            				}
     					String pocitac=st.nextToken();	// IP adresa apo domain
     					String objem=st.nextToken();	// sasia e te dhenave te derguara
     				
     			
    	 			if (pocitac.endsWith("cz.")){		//zgjidhen vetem rreshtat ku domain-i eshte .cz							
    			
     			
     					if (mapa.containsKey(pocitac)){	//gjej nqs domain-i i dhene eshte shkruar me pare
     						Integer pocet= (Integer) map.get(pocitac);	//lexohet numri i byte-ve
     						int cislo= pocet.intValue();				//
     						Integer dat= Integer.valueOf(objem);		
     						int preneseno= dat.intValue();				// 									
    						pocet=new Integer(cislo+preneseno);			//
     						map.put(pocitac,dat); 					
     				
     				 	} else {		 								//
     						Integer dat= Integer.valueOf(objem);			// 						map.put(pocitac,dat);
     			
     				  	}	
     					}	
            	}
            	souborBR.close();										//mbyllja e file-it
    				Iterator it = map.entrySet().iterator();              //...dhe shkruhet nepermjet iterator-it
             			while (it.hasNext()){
              				Map.Entry entry= (Map.Entry) it.next();	
              				System.out.println(entry.getKey()+ " - " + entry.getValue());
          				}  
            	}
            	catch (FileNotFoundException e){
            		System.out.println("Soubor nenalezen "+e.getMessage());
            	}
            	catch (IOException e){
    	        	System.out.println("Doslo k neocekavane chybe pri cteni souboru "+e.getMessage());
            	}
            	
            	
        	} else System.out.println("Nezadali jste jmeno souboru");	//    	}
        
    }
    file .log qe eshte perdorur ne kete program, nuk i ka rreshtat te ndare ne po ato segmente qe kerkohet ne programin e pare! dmth nga rreshti 14-15, behet nje korrigjim per ndarjen e rreshtit ne 6 pjese.
    ne rreshtin 22- kontrollohet nqs domain-i ka mbaresen cz.......po kjo ne programin e pare nuk kerkohet

    ne rreshtin 29- kontrollohet numri i byte-ve.............kurse mua me nevojitet te vertetoj qe nga x domain erdhi nje kerkese. nuk jam shume i sigurt, po ketu mund te mjaftoje dicka e stilit counter++.
    tani shumica e se keqes eshte hedhur prapa kraheve, po jane keto ycklat e vogla qe ste lene rehat.
    per cfaredo lloj ideje, shkruaj(ni)!
    rrofshi!
    ::|maDes!gn © 2009|::

  4. #4
    ...gjenķ... Maska e mad
    Anėtarėsuar
    18-03-2004
    Vendndodhja
    Prage [EU]
    Postime
    1,321
    Ja edhe te gjithe file-et e programit te meparshem, atij te perafermit! sa per shqyrtim!
    Skedarėt e Bashkėngjitur Skedarėt e Bashkėngjitur
    ::|maDes!gn © 2009|::

  5. #5
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Ja ku e ke kodin.
    E provova dhe punon sipas kėrkesave qė ke dhėnė.

    Kodi:
    import java.io.*;
    import java.util.*;
    
    public class Parser {
    
    	public static void main(String[] skedari){
    
    		SortedMap map = new TreeMap();
    		
    		if (skedari.length>0){ 	
    			try {
    	        	BufferedReader skedariBR = new BufferedReader(new   FileReader(skedari[0])); 
        	    	String radek;
            		while ((radek = skedariBR.readLine()) != null){	        
            			
    					StringTokenizer st = new StringTokenizer(radek); //ndaji fjalet e rreshtit
    	       			
     					String domain = st.nextToken(); //merr fjalen e pare (domain)
     			
     					if (map.containsKey(domain)){	//nqs ky domain eshte futur me pare ne map
    
    						Integer int_vjeter = (Integer) map.get(domain); //merr objektin e vjeter
    						int vlera_vjeter = int_vjeter.intValue();		//merr vleren e objektit						 
    						Integer int_ri = new Integer(vlera_vjeter + 1);	//rrite vleren me 1
    						map.put(domain, int_ri); 					    //fute perseri ne map
    					} 
    					else {		 					//nqs eshte domain i ri	 	
    						Integer int_ri = new Integer(1);  //krijo nje objekt te ri me vleren 1
    						map.put(domain, int_ri);          //fute objektin ne map
    					}
     			
    				}		
    
            		skedariBR.close();	
    				
    				Iterator it = map.entrySet().iterator();
    
    				while (it.hasNext())
    				{
    					Map.Entry entry = (Map.Entry) it.next();	
    					System.out.println(entry.getKey()+ " - " + entry.getValue());
    				}  
    
            	}
            	catch (FileNotFoundException e){
            		System.out.println("Nuk mund tė gjenim skedarin"+e.getMessage());
            	}
            	catch (IOException e){
    	        	System.out.println("Doslo k neocekavane chybe pri cteni skedariu "+e.getMessage());
            	}
            	
            	
        	} 
    		else { 
    			System.out.println("Nuk keni dhene emrin e skedarit");
    		}
    
    	}
    
    }
    Ja dhe rezultati. Domain janė tė renditur sipas alfabetit.
    Kodi:
    C:\>java Parser vsftp.log
    129.22.41.254 - 2
    143.54.2.55 - 2
    PPP-180-16.bng.vsnl.net.in. - 1
    a188-136.dialup.iol.cz. - 1
    achab.tesnetwork.cz. - 2
    c7.brno.mistral.cz. - 2
    ca-sqy-2-87.abo.wanadoo.fr. - 1
    chello212186093241.11.vie.surfer.at. - 1
    cw05.D1.srv.t-online.de. - 1
    fs-qklub.quido.cz. - 1
    p3E9E8865.dip.t-dialin.net. - 1
    pD900B2D2.dip0.t-ipconnect.de. - 4
    pD9E969F7.dip.t-dialin.net. - 1
    pb3.pair.com. - 1
    ppp-0-114.manc-b-2.access.uk.tiscali.com. - 1
    r37ua155-dialup.infopac.ru. - 2
    Tė kam bashkėngjitur Parser.java, Parser.class, vsftp.log
    Skedarėt e Bashkėngjitur Skedarėt e Bashkėngjitur
    Ndryshuar pėr herė tė fundit nga edspace : 16-04-2004 mė 19:29
    Edi

  6. #6
    ...gjenķ... Maska e mad
    Anėtarėsuar
    18-03-2004
    Vendndodhja
    Prage [EU]
    Postime
    1,321

    Pergjigje!

    edspace, shume shume shume faleminderit!
    provova edhe file te tjera *.log, dhe programi i lexon te gjitha!
    ajo futja e parametrit, per zgjedhjen e file-it, qe i ben para se te ekzekutohet programi, eshte mjaft praktike! dmth, mund ta perdoresh per cfaredo lloj file, qe ka te njejten strukture te dhenash!
    edhe nje here, te falenderoj!
    ::|maDes!gn © 2009|::

  7. #7
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Gėzohem qė tė bėn punė programi.
    Ėshtė e rėndėsishme qė ta kuptosh se ēfarė po ndodh.
    Nė fillim duhet ta fillosh programin me letėr dhe laps dhe pastaj tė fillosh nė kompjuter.
    Pasi zgjedh algoritmin qė do ndjekėsh, duhet tė zgjedhėsh edhe strukturėn (data structure). Nė rastin tonė, SortedMap ishte struktura ideale sepse eleminoi gjysmėn e punės pėr renditjen alfabetike. Po tė kishim zgjedhur njė strukturė tjetėr, do na duhet tė shkruanim njė funksionin tonė pėr renditjen, dhe kjo jo vetėm qė nuk ėshtė e lehtė por nuk ėshtė aq efikase sa ajo qė ėshtė ndėrtuar vetė nė SortedTree.

    Herė tjetėr mundohu tė bėsh diēka vetė dhe pastaj hidhe nė forum nqs ke nevojė pėr ndihmė.
    Edi

  8. #8
    ...gjenķ... Maska e mad
    Anėtarėsuar
    18-03-2004
    Vendndodhja
    Prage [EU]
    Postime
    1,321
    Dakort jam une me ty! Por ama nqs do kisha mundesi ta mbaroja vete, nuk do ju kerkoja ndihme juve qe dini!
    Nejse, une gjithsesi te falenderoj!
    ::|maDes!gn © 2009|::

  9. #9
    ...gjenķ... Maska e mad
    Anėtarėsuar
    18-03-2004
    Vendndodhja
    Prage [EU]
    Postime
    1,321
    persh edhe nje here tjeter!
    eshte nje detyre shtese e programit, por jo e detyrueshme, e cila kerkon, qe ne vend te te gjithe domainit si psh: www.forumishqiptar.com, te shkruhet vetem pjesa e fundit te tij dmth: .com, per secilin prej tyre te beheti njejti veprim, pra numerimi i kerkesave dhe renditja e tyre sipas emrit te domain-it dhe numrit te kerkesave gjithashtu.

    e them kete vetem sepse, ngaqe file .log mund te jete me MB te tere, nuk shikohen dot te gjitha rezultatet te afishuara nga programi, vetem 100 te fundit. nderkohe qe perpara tyre jane edhe 1100 te tjera. ndoshta kjo zgjidhje do ta shkurtonte kohen gjate ekzekutimit te programit, e cila eshte pak si e gjate, dhe gjithashtu do te shkurtonte shume listen er me rezultatet e afishuara!

    Nazdar!

    Pergjgjuni, po ju terhoqi!
    ::|maDes!gn © 2009|::

  10. #10
    Larguar Maska e cunimartum
    Anėtarėsuar
    07-06-2002
    Vendndodhja
    Canada
    Postime
    678
    Tani e pashe kete temen dhe besoj se i kuptova ato kerkesat e meparshme por s'jam shume i sigurte me kete te fundit. Nese do te marresh vetem .com nga domaini atehere do te percaktosh nje nga delimiters te tokens te jete "." pra pika, (kjo behet me nje metode te String Tokenizer hap API)
    Pastaj ben nje rresht:
    while( st.hasMoreTokens() )
    {
    if (st.nextToken() == "com) // ose si e do ti
    vazhdo kodin
    .
    .
    else // merr IP psh.
    }

    Tashti kur vihet pika "." si tokenizer duhet te vesh edhe "vend bosh", " "
    Ate piken e dyte per shkurtim kohe nuk e kuptova mire por SortedMap eshte e implementuar me balance binary tree me kohe te garantuar log(n)
    S'ma merr mendja se ka kerkim me eficent se kaq per strukturat peme.
    Shkruaj nese e do kodin e plote.
    Ndryshuar pėr herė tė fundit nga cunimartum : 21-04-2004 mė 20:28
    Fen e ke krejt personale. MEMEDHEUN E KEMI TE PERBASHKET.

Faqja 0 prej 2 FillimFillim 12 FunditFundit

Tema tė Ngjashme

  1. Ėndrra ime, tė kem njė program timin nė FoxNews
    Nga brooklyn2007 nė forumin Bashkėpatriotėt e mi nė botė
    Pėrgjigje: 5
    Postimi i Fundit: 19-09-2010, 23:38
  2. USA-Euroasia Grant Program
    Nga Larsus nė forumin Ekonomi & biznes
    Pėrgjigje: 0
    Postimi i Fundit: 05-02-2004, 13:01

Regullat e Postimit

  • Ju nuk mund tė hapni tema tė reja.
  • Ju nuk mund tė postoni nė tema.
  • Ju nuk mund tė bashkėngjitni skedarė.
  • Ju nuk mund tė ndryshoni postimet tuaja.
  •