Jump to content

Text processing/Max licenses in use: Difference between revisions

Go solution
({{omit from|PARI/GP}})
(Go solution)
Line 639:
2008/10/03_08:39:34
2008/10/03_08:40:40
</pre>
== {{header|Go}} ==
<lang go>package main
 
import (
"bufio"
"encoding/line"
"fmt"
"os"
"bytes"
)
 
var fn = "mlijobs.txt"
 
func main() {
f, err := os.Open(fn, os.O_RDONLY, 0)
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
var ml, out int
var mlTimes []string
in := []byte("IN")
for lr := line.NewReader(bufio.NewReader(f), 50); ; {
line, pref, err := lr.ReadLine()
if err != nil {
fmt.Println(err)
return
}
if pref {
fmt.Println("unexpected format, line > 50 bytes.")
return
}
f := bytes.Fields(line)
if len(f) == 0 {
break // file ends with blank line
}
if len(f) != 7 {
fmt.Println("unexpected format,", len(f), "fields.")
return
}
if bytes.Equal(f[1], in) {
out--
continue
}
out++
if out == ml {
mlTimes = append(mlTimes, string(f[3]))
continue
}
if out > ml {
ml = out
mlTimes = append(mlTimes[:0], string(f[3]))
}
}
fmt.Println("max licenses:", ml)
fmt.Println("at:")
for _, t := range mlTimes {
fmt.Println(" ", t)
}
}</lang>
Output:
<pre>
max licenses: 99
at:
2008/10/03_08:39:34
2008/10/03_08:40:40
</pre>
 
1,707

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.