Zahvaljujem ti se na svesrdnoj pomoci, ali ja sam izgleda pukao. Postavicu cijeli kod pa te molim ako imas vremena da mi kazes gdje grijesim.
pozzz
Kod:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fudbalskirezultati;
import java.io.*;
import java.util.*;
/**
*
* @author
*/
public class Main {
public static void main(String[] args) throws Exception
{
char izbor; //varijabla zaunos izbora...
Scanner scanner = new Scanner(System.in);
do
{
System.out.println("\n\n\n********* F U D B A L **********");
System.out.println("");
System.out.println("1)Unos novog tima");
System.out.println("2)Unos novog rezultata");
System.out.println("3)Prikaz tabele");
System.out.println("x)Izlazizprograma");
System.out.println("");
System.out.println("***************************************");
String tString = scanner.next();
izbor = tString.charAt(0);
Main vd = new Main();
switch(izbor)
{
//unos novog tima
case '1':
{
vd.UnosNovogTima();
break;
}
//unos rezultata
case '2':
{
vd.UnosNovogRezultata();
break;
}
// prikaz tabele
case '3':
{
vd.Tabela();
break;
}
//izlaz
case 'x':
{
System.out.println("Izlaz iz programa...");
break;
}
default:
{
System.out.print("Unijeli ste pogrešan izbor, pokušajte ponovo. \n");
break;
}
}
}while(izbor != 'x');
}
public boolean ProvjeraDaLiElementPostoji(String file, String element)
{
boolean element_postoji = false;
FileInputStream fin;
DataInputStream in;
BufferedReader br;
String postojeci_element;
try
{
fin = new FileInputStream(file);
in = new DataInputStream(fin);
br = new BufferedReader(new InputStreamReader(in));
// citaj fajl liniju po liniju
while ((postojeci_element = br.readLine()) != null)
{
// Ako se element pronađe postavi varijablu na true...
if(postojeci_element.equals(element))
element_postoji = true;
}
in.close();
}
//Ako se desi greška pri čitanju fajla...
catch (IOException e)
{
System.err.println("Greška pri čitanju fajla: " + file);
System.exit(-1);
}
//ako je element pronađen vrati true, inače vrati false...
return element_postoji;
}
//Prije unosa rezultata timova, potrebno je unijeti timove koji učestvuju...
public void UnosNovogTima()
{
Scanner scanner = new Scanner(System.in);
System.out.println("\nUnesite naziv Tima:");
String naziv_tima = scanner.nextLine();
System.out.println("Unesite pocetni broj bodova:"); // podrazumjevano je 0
String broj_bodova = scanner.nextLine();
//provjera da li tim već postoji...
//ako postoji samo promijeni liniju i dodaj nove bodove..
boolean artikal_postoji = false;
try
{
FileReader fr = new FileReader("Tabela.txt");
BufferedReader br = new BufferedReader(fr);
final String NEW_LINE = System.getProperty("line.separator");
StringBuffer sb = new StringBuffer();
String line;
Float nova_kolicina;
Float stara_kolicina;
// čitaj fajl liniju po liniju...
while ((line = br.readLine()) != null)
{
// Ako pronađe tim samo povećaj bodove...
if(line.contains(naziv_tima + " Bodova: "))
{
stara_kolicina = Float.valueOf(line.replace("Tim: " + naziv_tima + " Bodova: ", ""));
nova_kolicina = stara_kolicina + Float.valueOf(broj_bodova);
sb.append("Tim: " + naziv_tima + " Bodova: " + Float.toString(nova_kolicina));
sb.append(NEW_LINE);
artikal_postoji = true;
}
else
{
sb.append(line);
sb.append(NEW_LINE);
}
}
//nakon sto je procitan cijeli fajl i nije pronadjen tim, radi se o novom timu...
//upisi novu liniju u buffer a kasnije u fajl Tabela.txt...
if(artikal_postoji == false)
{
sb.append("Tim: " + naziv_tima + " Bodova: " + broj_bodova);
sb.append(NEW_LINE);
}
fr.close();
//Upisi sadrzaj buffera nazad u Tabela.txt...
PrintWriter pw= new PrintWriter(new FileWriter("Tabela.txt"));
pw.print(sb.toString());
pw.close();
}
catch (FileNotFoundException ex) // ako fajl ne postoji...
{
ex.printStackTrace();
}
catch (IOException ex) //ako je došlo do greške prilikom upisa u fajl...
{
ex.printStackTrace();
}
System.out.println("Tim: " + naziv_tima.trim() + " i početni bodovi, su uspješno unešeni.\n");
}
public void UnosNovogRezultata()
{
Scanner scanner = new Scanner(System.in);
System.out.println("\nUnesite naziv tima1:");
String tim1 = scanner.nextLine();
System.out.println("\nUnesite naziv tima2:");
String tim2 = scanner.nextLine();
System.out.println("Unesite broj golova tim1:");
String g1 = scanner.nextLine();
System.out.println("Unesite broj golova tim2:");
String g2 = scanner.nextLine();
//provjera da li timovi vec postoje...
//ako postoje samo promijeniti liniju i dodati bodove...
boolean artikal_postoji = false;
{
// potrebno je sting pretvoriti u integer radi > i < koje ne radi u stringu :))))
int r1 = Integer.parseInt(g1);
int r2 = Integer.parseInt(g2);
if(r1<r2)
{
r1=0;
r2=3;
}
else
{
if(r1>r2)
{
r1=3;
r2=0;
}
else
{
r1=1;
r2=1;
}
}
// vrati u string...
String bod1 ;
String bod2 ;
bod1=Float.toString(r1);
bod2=Float.toString(r2);
try
{
FileReader fr = new FileReader("Tabela.txt");
BufferedReader br = new BufferedReader(fr);
final String NEW_LINE = System.getProperty("line.separator");
StringBuffer sb = new StringBuffer();
String line;
Float novi_bodovi;
Float stari_bodovi;
Float BodPrije;
Float BodPoslije;
// čitaj fajl liniju po liniju...
while ((line = br.readLine()) != null)
{
// Ako se tim pronađe samo povecaj broj bodova...
if(line.contains(tim1 + " Bodova: "))
{
stari_bodovi = Float.valueOf(line.replace("Tim: " + tim1 + " Bodova: ", ""));
novi_bodovi = stari_bodovi + Float.valueOf(bod1);
sb.append("Tim: " + tim1 + " Bodova: " + Float.toString(novi_bodovi));
sb.append(NEW_LINE);
}
else if (line.contains(tim2 + " Bodova: "))
{
BodPrije = Float.valueOf(line.replace("Tim: " + tim2 + " Bodova: ", ""));
BodPoslije = BodPrije + Float.valueOf(bod2);
sb.append("Tim: " + tim2 + " Bodova: " + Float.toString(BodPoslije));
sb.append(NEW_LINE);
artikal_postoji = true;
}
else
{
sb.append(line);
sb.append(NEW_LINE);
}
}
//ako nakon sto je procitan cijeli fajl nije pronadjen tim, radi se o novom timu (imaće dupli unos tima)...
//upisi novu liniju u buffer i kasnije u fajl...
if(artikal_postoji == false)
{
sb.append("Tim: " + tim1 + " Bodova: " + bod1);
sb.append(NEW_LINE);
//
sb.append("Tim: " + tim2 + " Bodova: " + bod2);
sb.append(NEW_LINE);
}
fr.close();
// Upiši buffer nazad u fajl...
PrintWriter pw= new PrintWriter(new FileWriter("Tabela.txt"));
pw.print(sb.toString());
pw.close();
}
// Izuzetci
catch (FileNotFoundException ex) // ako fajl ne postoji...
{
ex.printStackTrace();
}
catch (IOException ex) //ako je došlo do greške prilikom upisa u fajl...
{
ex.printStackTrace();
}
System.out.println("Utakmica: " + tim1.trim() +":"+ tim2.trim()+ ", je uspješno ažurirana.\n");
}
}
// tabela sa bodovima...
public void Tabela() throws Exception {
File file = new File("Tabela.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
ArrayList<String> lines = new ArrayList<String>(10);
String line;
while((line = reader.readLine()) != null) {
lines.add(line);
}
String[] sorted = lines.toArray(new String[lines.size()]);
sortRawTeamData(sorted, true);
for(int i = 0; i < sorted.length; i++) {
System.out.println(sorted[i]);
}
}
private void sortRawTeamData(String[] strings, final boolean ascending) {
Arrays.sort(strings, new Comparator<String>() {
public int compare(String line1, String line2) {
String seg1 = line1.substring(line1.lastIndexOf(':') + 1).trim();
String seg2 = line2.substring(line2.lastIndexOf(':') + 1).trim();
double p1 = Double.parseDouble(seg1);
double p2 = Double.parseDouble(seg2);
return (int)((p1 - p2) * (ascending? 1:-1));
}
});
}
}