Beispiel #1
0
func naplndb(db sql.Db, foddily, dzavody, suffix string) {
	db.Createtables()
	// nacist oddily
	oddily := input.Nacti_oddily(foddily)
	log.Printf("Oddilu: %d\n", len(oddily))
	log.Println("-------------")
	// nacist zavod po zavode
	vysledky := nacti_zavody(dzavody, suffix)
	log.Println("-------------")
	for _, vysledek := range vysledky {
		switch suffix {
		case ".txt":
			FromCsoc(db, oddily, vysledek)
		case ".xml":
			FromXml(db, oddily, vysledek)
		}
	}
}
func main() {
	flag.Parse()
	args := flag.Args()
	if len(args) != 3 {
		log.Fatal("args: oddily klasif_csos hlavni_csos")

	}

	oddily := input.Nacti_oddily(args[0])

	klasif := input.Zavod{}
	hlavni := input.Zavod{}

	csosklasif := input.ReadCsos(args[1])
	rsklasif := input.GetValid(csosklasif, oddily, klasif)

	csoshlavni := input.ReadCsos(args[2])
	rshlavni := input.GetValid(csoshlavni, oddily, hlavni)

	klasmap := map[types.Regno]bool{}
	for _, v := range rsklasif {
		klasmap[v.Regno] = true
	}

	fmt.Println("-")
	rs := []input.Csos{}
	for _, v := range rshlavni {
		_, found := klasmap[v.Regno]
		if found {
			rs = append(rs, v)
			l := []string{v.Class.String(),
				v.FamilyGiven,
				v.Regno.String(),
				v.License,
				v.Result}
			output.fprintfw(os.Stdout, l, []int{10, 25, 7, 1, 6})
		}
	}

}
func main() {
	flag.Parse()
	args := flag.Args()
	if len(args) != 3 {
		log.Fatal("args: oddily klasif_csos hlavni_csos")

	}

	oddily := input.Nacti_oddily(args[0])

	klasif := input.Zavod{}
	hlavni := input.Zavod{}

	csosklasif := input.ReadCsos(args[1])
	rsklasif := input.GetValid(csosklasif, oddily, klasif)

	csoshlavni := input.ReadCsos(args[2])
	rshlavni := input.GetValid(csoshlavni, oddily, hlavni)

	klasmap := map[types.Regno]bool{}
	for _, v := range rsklasif {
		klasmap[v.Regno] = true
	}

	cs := make(map[types.Class][]input.Csos)
	for _, v := range rshlavni {
		_, found := klasmap[v.Regno]
		if found { // klasifikovany
			c := v.Class
			cs[c] = append(cs[c], v)
		}
	}

	keys := make([]types.Class, 0)
	for k, _ := range cs {
		keys = append(keys, k)
	}

	types.ClassBy(func(c1, c2 *types.Class) bool {
		if c1.A == c2.A {
			if c1.B == c2.B {
				return c1.C < c2.C
			} else {
				return c1.B < c2.B
			}
		} else {
			return c1.A < c2.A
		}
		return false
	}).Sort(keys)

	fmt.Println("-")

	// bug, pokud poslední v A má stejný čas
	// jako první v B, budou na děleném místě

	for _, c := range keys {
		for _, v := range cs[c] {
			l := []string{fmt.Sprintf("%s%d", v.Class.A, v.Class.B), // drop .C
				v.FamilyGiven,
				v.Regno.String(),
				v.License,
				v.Result}
			output.Fprintfw(os.Stdout, l, []int{10, 25, 7, 1, 6})
		}
	}
}