csvutils 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Manifest.txt +9 -0
- data/lib/csvutils.rb +4 -2
- data/lib/csvutils/cut.rb +47 -0
- data/lib/csvutils/split.rb +107 -0
- data/lib/csvutils/test.rb +22 -0
- data/lib/csvutils/utils.rb +29 -0
- data/lib/csvutils/version.rb +2 -2
- data/test/data/at-austria/AUT.csv +363 -0
- data/test/data/de-deutschland/bundesliga.csv +481 -0
- data/test/data/eng-england/2017-18/E0.csv +381 -0
- data/test/helper.rb +7 -1
- data/test/test_headers.rb +41 -0
- data/test/test_misc.rb +33 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91b99040998dec29903bb139c7650aec805981c9
|
4
|
+
data.tar.gz: 4ca0a379e0a99dc01f35957ca021ccb4b56aaef3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cae580d42247f3df41c846880cdfc78f4f410fc553acff75b57cf85d542a80e97c6ef4ec7e1e924b1cdd85934596addc4d0941bdab9e31478bf0e012386eaf2
|
7
|
+
data.tar.gz: 8398dabd6e1bf01134ba31016b77a866c308c7a75ef426b1ebc995d043c11ec757c15c07bc5b8ba2f81764fa796ad96013055b19af30b70504647aff3915b570
|
data/Manifest.txt
CHANGED
@@ -3,6 +3,15 @@ Manifest.txt
|
|
3
3
|
README.md
|
4
4
|
Rakefile
|
5
5
|
lib/csvutils.rb
|
6
|
+
lib/csvutils/cut.rb
|
7
|
+
lib/csvutils/split.rb
|
8
|
+
lib/csvutils/test.rb
|
9
|
+
lib/csvutils/utils.rb
|
6
10
|
lib/csvutils/version.rb
|
11
|
+
test/data/at-austria/AUT.csv
|
12
|
+
test/data/de-deutschland/bundesliga.csv
|
13
|
+
test/data/eng-england/2017-18/E0.csv
|
7
14
|
test/helper.rb
|
15
|
+
test/test_headers.rb
|
16
|
+
test/test_misc.rb
|
8
17
|
test/test_version.rb
|
data/lib/csvutils.rb
CHANGED
data/lib/csvutils/cut.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
## check/use class or module ???
|
4
|
+
|
5
|
+
|
6
|
+
class CsvUtils
|
7
|
+
|
8
|
+
def self.cut( inpath, outpath, *columns, sep: ',' )
|
9
|
+
|
10
|
+
puts "cvscut in: >#{inpath}< out: >#{outpath}<"
|
11
|
+
|
12
|
+
## ["Date", "HomeTeam", "AwayTeam", "FTHG", "FTAG", "HTHG", "HTAG"]
|
13
|
+
puts "columns:"
|
14
|
+
pp columns
|
15
|
+
|
16
|
+
text = File.open( inpath, 'r:utf-8' ).read ## note: make sure to use (assume) utf-8
|
17
|
+
|
18
|
+
csv_options = { headers: true,
|
19
|
+
col_sep: sep }
|
20
|
+
|
21
|
+
table = CSV.parse( text, csv_options )
|
22
|
+
|
23
|
+
|
24
|
+
## for convenience - make sure parent folders/directories exist
|
25
|
+
FileUtils.mkdir_p( File.dirname( outpath )) unless Dir.exists?( File.dirname( outpath ))
|
26
|
+
|
27
|
+
## use wb mode - why? why not?
|
28
|
+
## assumes same encoding as input?
|
29
|
+
## fix/todo: better (always) use utf8!!!!
|
30
|
+
## CSV.open( out_path, 'wb' ) do |out|
|
31
|
+
|
32
|
+
## use just "regular" File for output - why? why not?
|
33
|
+
## downside will not encode comma (for now) if present ("Beethoven, van")
|
34
|
+
## all values will be unquoted etc. - keep it simple?
|
35
|
+
|
36
|
+
CSV.open( outpath, 'w:utf-8' ) do |out|
|
37
|
+
out << columns ## for row add headers/columns
|
38
|
+
table.each do |row|
|
39
|
+
values = columns.map { |col| row[col].strip } ## find data for column
|
40
|
+
out << values
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
puts 'Done.'
|
45
|
+
end ## method self.cut
|
46
|
+
|
47
|
+
end # class CsvUtils
|
@@ -0,0 +1,107 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
class CsvUtils
|
7
|
+
|
8
|
+
def self.split( path, *columns, sep: ',', &blk )
|
9
|
+
|
10
|
+
puts "cvssplit in: >#{path}<"
|
11
|
+
|
12
|
+
## ["Date", "HomeTeam", "AwayTeam", "FTHG", "FTAG", "HTHG", "HTAG"]
|
13
|
+
puts "columns:"
|
14
|
+
pp columns
|
15
|
+
|
16
|
+
text = File.open( path, 'r:utf-8' ).read ## note: make sure to use (assume) utf-8
|
17
|
+
|
18
|
+
## note: do NOT use headers
|
19
|
+
## for easy sorting use "plain" array of array for records
|
20
|
+
csv_options = { col_sep: sep }
|
21
|
+
|
22
|
+
data = CSV.parse( text, csv_options )
|
23
|
+
|
24
|
+
## todo/check: (auto-) strip (remove all leading and trailing spaces)
|
25
|
+
## from all values - why? why not?
|
26
|
+
## check if CSV.parse has an option for it?
|
27
|
+
|
28
|
+
headers = data.shift ## remove top array item (that is, row with headers)
|
29
|
+
|
30
|
+
header_mapping = {}
|
31
|
+
headers.each_with_index { | header,i | header_mapping[header]=i }
|
32
|
+
pp header_mapping
|
33
|
+
|
34
|
+
## map columns to array indices e.g. ['Season', 'Div'] => [1,2]
|
35
|
+
column_indices = columns.map { |col| header_mapping[col] }
|
36
|
+
pp column_indices
|
37
|
+
|
38
|
+
|
39
|
+
###################################################
|
40
|
+
## note: sort data by columns (before split)
|
41
|
+
data = data.sort do |row1,row2|
|
42
|
+
res = 0
|
43
|
+
column_indices.each do |col|
|
44
|
+
res = row1[col] <=> row2[col] if res == 0
|
45
|
+
end
|
46
|
+
res
|
47
|
+
end
|
48
|
+
|
49
|
+
chunk = []
|
50
|
+
data.each_with_index do |row,i|
|
51
|
+
chunk << row
|
52
|
+
|
53
|
+
next_row = data[i+1]
|
54
|
+
|
55
|
+
changed = false
|
56
|
+
if next_row.nil? ## end-of-file
|
57
|
+
changed = true
|
58
|
+
else
|
59
|
+
column_indices.each do |col|
|
60
|
+
if row[col] != next_row[col]
|
61
|
+
changed = true
|
62
|
+
break ## out of each column_indices loop
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
if changed
|
68
|
+
puts "save new chunk:"
|
69
|
+
column_values = column_indices.map {|col| row[col] }
|
70
|
+
pp column_values
|
71
|
+
|
72
|
+
# note: add header(s) row upfront (as first row) to chunk (with unshift)
|
73
|
+
chunk_with_headers = chunk.unshift( headers )
|
74
|
+
if blk
|
75
|
+
yield( column_values, chunk_with_headers )
|
76
|
+
else
|
77
|
+
## auto-save (write-to-file) by default - why? why not?
|
78
|
+
split_write( path, column_values, chunk_with_headers )
|
79
|
+
end
|
80
|
+
|
81
|
+
chunk = [] ## reset chunk for next batch of records
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
puts 'Done.'
|
86
|
+
end ## method self.split
|
87
|
+
|
88
|
+
|
89
|
+
def self.split_write( inpath, values, chunk )
|
90
|
+
basename = File.basename( inpath, '.*' )
|
91
|
+
dirname = File.dirname( inpath )
|
92
|
+
|
93
|
+
## check/change invalid filename chars
|
94
|
+
## e.g. change 1990/91 to 1990-91
|
95
|
+
extraname = values.map {|value| value.tr('/','-')}.join('~')
|
96
|
+
|
97
|
+
outpath = "#{dirname}/#{basename}_#{extraname}.csv"
|
98
|
+
puts "saving >#{basename}_#{extraname}.csv<..."
|
99
|
+
|
100
|
+
CSV.open( outpath, 'w:utf-8' ) do |out|
|
101
|
+
chunk.each do |row|
|
102
|
+
out << row
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
end # class CsvUtils
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
class CsvUtils
|
5
|
+
|
6
|
+
## test or dry run to check if rows can get read/scanned
|
7
|
+
def self.test( path, sep: ',' )
|
8
|
+
i = 0
|
9
|
+
csv_options = { headers: true,
|
10
|
+
col_sep: sep,
|
11
|
+
## todo/fix: always (auto-)add utf-8 external encoding!!!
|
12
|
+
}
|
13
|
+
|
14
|
+
CSV.foreach( path, csv_options ) do |row|
|
15
|
+
i += 1
|
16
|
+
print '.' if i % 100 == 0
|
17
|
+
end
|
18
|
+
|
19
|
+
puts " #{i} rows"
|
20
|
+
end
|
21
|
+
|
22
|
+
end # class CsvUtils
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
class CsvUtils
|
5
|
+
|
6
|
+
def self.header( path, sep: ',' ) ## use header or headers - or use both (with alias)?
|
7
|
+
|
8
|
+
# read first line (only)
|
9
|
+
# and parse with csv to get header from csv library itself
|
10
|
+
#
|
11
|
+
# check - if there's an easier or built-in way for the csv library
|
12
|
+
|
13
|
+
line = File.open( path, 'r:utf-8' ) { |f| f.readline }
|
14
|
+
|
15
|
+
## e.g.:
|
16
|
+
# "Country,League,Season,Date,Time,Home,Away,HG,AG,Res,PH,PD,PA,MaxH,MaxD,MaxA,AvgH,AvgD,AvgA\n"
|
17
|
+
pp line
|
18
|
+
|
19
|
+
csv_options = { col_sep: sep }
|
20
|
+
### external_encoding: 'utf-8' } ## note: always use (assume) utf8 for now
|
21
|
+
|
22
|
+
## note: do NOT use headers: true to get "plain" data array (no hash records)
|
23
|
+
## hash record does NOT work for single line/row
|
24
|
+
rows = CSV.parse( line, csv_options )
|
25
|
+
pp rows
|
26
|
+
rows[0] ## return first row
|
27
|
+
end # method self.header
|
28
|
+
|
29
|
+
end # class CsvUtils
|
data/lib/csvutils/version.rb
CHANGED
@@ -0,0 +1,363 @@
|
|
1
|
+
Season,Date,Time,Home,Away,HG,AG
|
2
|
+
2016/2017,23/07/16,15:00,Rapid Vienna,Ried,5,0
|
3
|
+
2016/2017,23/07/16,17:30,Altach,AC Wolfsberger,1,0
|
4
|
+
2016/2017,23/07/16,17:30,Sturm Graz,Salzburg,3,1
|
5
|
+
2016/2017,24/07/16,15:30,St. Polten,Austria Vienna,1,2
|
6
|
+
2016/2017,24/07/16,18:00,Mattersburg,Admira,0,1
|
7
|
+
2016/2017,30/07/16,15:00,Salzburg,AC Wolfsberger,1,1
|
8
|
+
2016/2017,30/07/16,17:30,Ried,Sturm Graz,1,0
|
9
|
+
2016/2017,31/07/16,15:30,Altach,Rapid Vienna,1,0
|
10
|
+
2016/2017,31/07/16,15:30,Austria Vienna,Mattersburg,3,1
|
11
|
+
2016/2017,31/07/16,18:00,St. Polten,Admira,2,1
|
12
|
+
2016/2017,06/08/16,15:00,Mattersburg,Sturm Graz,0,2
|
13
|
+
2016/2017,06/08/16,17:30,AC Wolfsberger,Ried,1,0
|
14
|
+
2016/2017,06/08/16,17:30,Admira,Altach,1,2
|
15
|
+
2016/2017,06/08/16,17:30,Salzburg,St. Polten,2,0
|
16
|
+
2016/2017,07/08/16,15:30,Austria Vienna,Rapid Vienna,1,4
|
17
|
+
2016/2017,13/08/16,15:00,Ried,Salzburg,0,2
|
18
|
+
2016/2017,13/08/16,17:30,Altach,St. Polten,3,1
|
19
|
+
2016/2017,13/08/16,17:30,Mattersburg,AC Wolfsberger,3,1
|
20
|
+
2016/2017,13/08/16,17:30,Rapid Vienna,Admira,4,0
|
21
|
+
2016/2017,14/08/16,15:30,Sturm Graz,Austria Vienna,3,1
|
22
|
+
2016/2017,20/08/16,15:00,St. Polten,Sturm Graz,1,3
|
23
|
+
2016/2017,20/08/16,17:30,Admira,Ried,1,0
|
24
|
+
2016/2017,20/08/16,17:30,Salzburg,Mattersburg,3,1
|
25
|
+
2016/2017,21/08/16,15:30,AC Wolfsberger,Rapid Vienna,1,1
|
26
|
+
2016/2017,21/08/16,18:00,Austria Vienna,Altach,3,1
|
27
|
+
2016/2017,27/08/16,15:00,Sturm Graz,Altach,3,1
|
28
|
+
2016/2017,27/08/16,17:30,AC Wolfsberger,Admira,5,0
|
29
|
+
2016/2017,27/08/16,17:30,Mattersburg,St. Polten,1,1
|
30
|
+
2016/2017,28/08/16,15:30,Rapid Vienna,Salzburg,0,0
|
31
|
+
2016/2017,28/08/16,18:00,Ried,Austria Vienna,1,1
|
32
|
+
2016/2017,10/09/16,15:00,Sturm Graz,Rapid Vienna,1,1
|
33
|
+
2016/2017,10/09/16,17:30,Altach,Mattersburg,2,1
|
34
|
+
2016/2017,10/09/16,17:30,Austria Vienna,AC Wolfsberger,4,1
|
35
|
+
2016/2017,10/09/16,17:30,St. Polten,Ried,2,3
|
36
|
+
2016/2017,11/09/16,15:30,Admira,Salzburg,0,4
|
37
|
+
2016/2017,17/09/16,15:00,Ried,Altach,2,1
|
38
|
+
2016/2017,17/09/16,17:30,AC Wolfsberger,St. Polten,1,1
|
39
|
+
2016/2017,17/09/16,17:30,Admira,Sturm Graz,0,3
|
40
|
+
2016/2017,18/09/16,15:30,Salzburg,Austria Vienna,4,1
|
41
|
+
2016/2017,18/09/16,18:00,Rapid Vienna,Mattersburg,3,0
|
42
|
+
2016/2017,24/09/16,15:00,St. Polten,Rapid Vienna,1,1
|
43
|
+
2016/2017,24/09/16,17:30,Austria Vienna,Admira,1,2
|
44
|
+
2016/2017,24/09/16,17:30,Mattersburg,Ried,1,1
|
45
|
+
2016/2017,24/09/16,17:30,Sturm Graz,AC Wolfsberger,3,0
|
46
|
+
2016/2017,25/09/16,15:30,Altach,Salzburg,0,0
|
47
|
+
2016/2017,01/10/16,15:00,AC Wolfsberger,Altach,1,2
|
48
|
+
2016/2017,01/10/16,17:30,Admira,Mattersburg,1,0
|
49
|
+
2016/2017,02/10/16,15:30,Ried,Rapid Vienna,4,2
|
50
|
+
2016/2017,02/10/16,15:30,Salzburg,Sturm Graz,0,1
|
51
|
+
2016/2017,02/10/16,18:00,Austria Vienna,St. Polten,2,1
|
52
|
+
2016/2017,15/10/16,15:00,AC Wolfsberger,Salzburg,2,2
|
53
|
+
2016/2017,15/10/16,17:30,Admira,St. Polten,1,1
|
54
|
+
2016/2017,15/10/16,17:30,Rapid Vienna,Altach,1,1
|
55
|
+
2016/2017,15/10/16,17:30,Sturm Graz,Ried,1,0
|
56
|
+
2016/2017,16/10/16,15:30,Mattersburg,Austria Vienna,0,2
|
57
|
+
2016/2017,22/10/16,15:00,Sturm Graz,Mattersburg,2,2
|
58
|
+
2016/2017,22/10/16,17:30,Altach,Admira,2,0
|
59
|
+
2016/2017,22/10/16,17:30,Ried,AC Wolfsberger,0,1
|
60
|
+
2016/2017,23/10/16,13:00,St. Polten,Salzburg,1,5
|
61
|
+
2016/2017,23/10/16,15:30,Rapid Vienna,Austria Vienna,0,2
|
62
|
+
2016/2017,29/10/16,15:00,Admira,Rapid Vienna,1,2
|
63
|
+
2016/2017,29/10/16,17:30,AC Wolfsberger,Mattersburg,3,0
|
64
|
+
2016/2017,29/10/16,17:30,Salzburg,Ried,1,0
|
65
|
+
2016/2017,29/10/16,17:30,St. Polten,Altach,0,1
|
66
|
+
2016/2017,30/10/16,15:30,Austria Vienna,Sturm Graz,2,0
|
67
|
+
2016/2017,05/11/16,15:00,Sturm Graz,St. Polten,1,2
|
68
|
+
2016/2017,05/11/16,17:30,Ried,Admira,2,1
|
69
|
+
2016/2017,06/11/16,13:00,Rapid Vienna,AC Wolfsberger,0,1
|
70
|
+
2016/2017,06/11/16,15:30,Altach,Austria Vienna,5,1
|
71
|
+
2016/2017,06/11/16,15:30,Mattersburg,Salzburg,2,1
|
72
|
+
2016/2017,19/11/16,15:00,Altach,Sturm Graz,1,1
|
73
|
+
2016/2017,19/11/16,17:30,Admira,AC Wolfsberger,4,1
|
74
|
+
2016/2017,19/11/16,17:30,Austria Vienna,Ried,2,0
|
75
|
+
2016/2017,19/11/16,17:30,St. Polten,Mattersburg,2,2
|
76
|
+
2016/2017,20/11/16,15:30,Salzburg,Rapid Vienna,2,1
|
77
|
+
2016/2017,26/11/16,15:00,Ried,St. Polten,1,2
|
78
|
+
2016/2017,26/11/16,17:30,Mattersburg,Altach,1,2
|
79
|
+
2016/2017,27/11/16,13:00,AC Wolfsberger,Austria Vienna,0,3
|
80
|
+
2016/2017,27/11/16,15:30,Rapid Vienna,Sturm Graz,1,2
|
81
|
+
2016/2017,27/11/16,15:30,Salzburg,Admira,0,1
|
82
|
+
2016/2017,29/11/16,18:00,Altach,Ried,1,0
|
83
|
+
2016/2017,30/11/16,19:30,Austria Vienna,Salzburg,1,3
|
84
|
+
2016/2017,30/11/16,19:30,Mattersburg,Rapid Vienna,1,1
|
85
|
+
2016/2017,30/11/16,19:30,St. Polten,AC Wolfsberger,0,4
|
86
|
+
2016/2017,30/11/16,19:30,Sturm Graz,Admira,0,2
|
87
|
+
2016/2017,03/12/16,15:00,Rapid Vienna,St. Polten,1,0
|
88
|
+
2016/2017,03/12/16,17:30,Admira,Austria Vienna,0,2
|
89
|
+
2016/2017,03/12/16,17:30,Ried,Mattersburg,2,1
|
90
|
+
2016/2017,03/12/16,17:30,Salzburg,Altach,4,1
|
91
|
+
2016/2017,04/12/16,15:30,AC Wolfsberger,Sturm Graz,0,4
|
92
|
+
2016/2017,10/12/16,15:00,Altach,AC Wolfsberger,2,1
|
93
|
+
2016/2017,10/12/16,17:30,Mattersburg,Admira,2,0
|
94
|
+
2016/2017,11/12/16,13:00,Rapid Vienna,Ried,3,1
|
95
|
+
2016/2017,11/12/16,15:30,Sturm Graz,Salzburg,0,1
|
96
|
+
2016/2017,12/12/16,15:30,St. Polten,Austria Vienna,2,1
|
97
|
+
2016/2017,17/12/16,15:00,Ried,Sturm Graz,0,3
|
98
|
+
2016/2017,17/12/16,17:30,Austria Vienna,Mattersburg,2,0
|
99
|
+
2016/2017,17/12/16,17:30,Salzburg,AC Wolfsberger,3,0
|
100
|
+
2016/2017,17/12/16,17:30,St. Polten,Admira,2,2
|
101
|
+
2016/2017,18/12/16,15:30,Altach,Rapid Vienna,3,1
|
102
|
+
2016/2017,11/02/17,15:00,Admira,Altach,1,1
|
103
|
+
2016/2017,11/02/17,17:30,AC Wolfsberger,Ried,1,0
|
104
|
+
2016/2017,11/02/17,17:30,Mattersburg,Sturm Graz,1,0
|
105
|
+
2016/2017,11/02/17,17:30,Salzburg,St. Polten,2,0
|
106
|
+
2016/2017,12/02/17,15:30,Austria Vienna,Rapid Vienna,1,1
|
107
|
+
2016/2017,18/02/17,15:00,Sturm Graz,Austria Vienna,0,4
|
108
|
+
2016/2017,18/02/17,17:30,Altach,St. Polten,1,2
|
109
|
+
2016/2017,18/02/17,17:30,Mattersburg,AC Wolfsberger,2,1
|
110
|
+
2016/2017,18/02/17,17:30,Rapid Vienna,Admira,0,0
|
111
|
+
2016/2017,19/02/17,15:30,Ried,Salzburg,1,6
|
112
|
+
2016/2017,25/02/17,15:00,AC Wolfsberger,Rapid Vienna,2,1
|
113
|
+
2016/2017,25/02/17,17:30,Admira,Ried,1,0
|
114
|
+
2016/2017,25/02/17,17:30,Austria Vienna,Altach,1,3
|
115
|
+
2016/2017,25/02/17,17:30,Salzburg,Mattersburg,1,0
|
116
|
+
2016/2017,26/02/17,15:30,St. Polten,Sturm Graz,2,1
|
117
|
+
2016/2017,04/03/17,15:00,Sturm Graz,Altach,3,0
|
118
|
+
2016/2017,04/03/17,17:30,AC Wolfsberger,Admira,1,1
|
119
|
+
2016/2017,04/03/17,17:30,Mattersburg,St. Polten,1,0
|
120
|
+
2016/2017,04/03/17,17:30,Ried,Austria Vienna,0,3
|
121
|
+
2016/2017,05/03/17,15:30,Rapid Vienna,Salzburg,0,1
|
122
|
+
2016/2017,11/03/17,15:00,St. Polten,Ried,1,0
|
123
|
+
2016/2017,11/03/17,17:30,Admira,Salzburg,1,1
|
124
|
+
2016/2017,11/03/17,17:30,Altach,Mattersburg,3,0
|
125
|
+
2016/2017,11/03/17,17:30,Austria Vienna,AC Wolfsberger,3,0
|
126
|
+
2016/2017,12/03/17,15:30,Sturm Graz,Rapid Vienna,2,1
|
127
|
+
2016/2017,18/03/17,15:00,Rapid Vienna,Mattersburg,1,1
|
128
|
+
2016/2017,18/03/17,17:30,AC Wolfsberger,St. Polten,1,0
|
129
|
+
2016/2017,18/03/17,17:30,Admira,Sturm Graz,1,0
|
130
|
+
2016/2017,18/03/17,17:30,Ried,Altach,2,0
|
131
|
+
2016/2017,19/03/17,15:30,Salzburg,Austria Vienna,5,0
|
132
|
+
2016/2017,01/04/17,15:00,St. Polten,Rapid Vienna,1,1
|
133
|
+
2016/2017,01/04/17,17:30,Austria Vienna,Admira,0,2
|
134
|
+
2016/2017,01/04/17,17:30,Mattersburg,Ried,2,1
|
135
|
+
2016/2017,01/04/17,17:30,Sturm Graz,AC Wolfsberger,4,0
|
136
|
+
2016/2017,02/04/17,15:30,Altach,Salzburg,0,5
|
137
|
+
2016/2017,08/04/17,15:00,Ried,Rapid Vienna,3,0
|
138
|
+
2016/2017,08/04/17,17:30,AC Wolfsberger,Altach,0,0
|
139
|
+
2016/2017,08/04/17,17:30,Admira,Mattersburg,0,2
|
140
|
+
2016/2017,08/04/17,17:30,Austria Vienna,St. Polten,1,2
|
141
|
+
2016/2017,09/04/17,15:30,Salzburg,Sturm Graz,1,0
|
142
|
+
2016/2017,15/04/17,15:00,AC Wolfsberger,Salzburg,0,2
|
143
|
+
2016/2017,15/04/17,17:30,Admira,St. Polten,2,0
|
144
|
+
2016/2017,15/04/17,17:30,Rapid Vienna,Altach,3,0
|
145
|
+
2016/2017,15/04/17,17:30,Sturm Graz,Ried,1,0
|
146
|
+
2016/2017,16/04/17,14:00,Mattersburg,Austria Vienna,0,3
|
147
|
+
2016/2017,22/04/17,15:00,Sturm Graz,Mattersburg,0,2
|
148
|
+
2016/2017,22/04/17,17:30,Altach,Admira,0,0
|
149
|
+
2016/2017,22/04/17,17:30,Ried,AC Wolfsberger,1,1
|
150
|
+
2016/2017,22/04/17,17:30,St. Polten,Salzburg,1,2
|
151
|
+
2016/2017,23/04/17,15:30,Rapid Vienna,Austria Vienna,0,2
|
152
|
+
2016/2017,29/04/17,15:00,Austria Vienna,Sturm Graz,4,1
|
153
|
+
2016/2017,29/04/17,17:30,AC Wolfsberger,Mattersburg,2,2
|
154
|
+
2016/2017,29/04/17,17:30,Salzburg,Ried,1,1
|
155
|
+
2016/2017,29/04/17,17:30,St. Polten,Altach,3,3
|
156
|
+
2016/2017,30/04/17,15:30,Admira,Rapid Vienna,3,2
|
157
|
+
2016/2017,06/05/17,15:00,Mattersburg,Salzburg,2,1
|
158
|
+
2016/2017,06/05/17,17:30,Rapid Vienna,AC Wolfsberger,4,0
|
159
|
+
2016/2017,06/05/17,17:30,Ried,Admira,1,0
|
160
|
+
2016/2017,06/05/17,17:30,Sturm Graz,St. Polten,3,2
|
161
|
+
2016/2017,07/05/17,15:30,Altach,Austria Vienna,1,1
|
162
|
+
2016/2017,13/05/17,15:00,Salzburg,Rapid Vienna,1,0
|
163
|
+
2016/2017,13/05/17,17:30,Admira,AC Wolfsberger,3,2
|
164
|
+
2016/2017,13/05/17,17:30,Austria Vienna,Ried,3,0
|
165
|
+
2016/2017,13/05/17,17:30,St. Polten,Mattersburg,1,0
|
166
|
+
2016/2017,14/05/17,15:30,Altach,Sturm Graz,1,2
|
167
|
+
2016/2017,20/05/17,15:00,Ried,St. Polten,1,1
|
168
|
+
2016/2017,20/05/17,17:30,AC Wolfsberger,Austria Vienna,2,1
|
169
|
+
2016/2017,20/05/17,17:30,Mattersburg,Altach,1,0
|
170
|
+
2016/2017,20/05/17,17:30,Salzburg,Admira,2,0
|
171
|
+
2016/2017,21/05/17,15:30,Rapid Vienna,Sturm Graz,1,0
|
172
|
+
2016/2017,25/05/17,15:30,Altach,Ried,0,2
|
173
|
+
2016/2017,25/05/17,15:30,Austria Vienna,Salzburg,2,3
|
174
|
+
2016/2017,25/05/17,15:30,Mattersburg,Rapid Vienna,1,3
|
175
|
+
2016/2017,25/05/17,15:30,St. Polten,AC Wolfsberger,1,1
|
176
|
+
2016/2017,25/05/17,15:30,Sturm Graz,Admira,2,1
|
177
|
+
2016/2017,28/05/17,15:30,AC Wolfsberger,Sturm Graz,1,0
|
178
|
+
2016/2017,28/05/17,15:30,Admira,Austria Vienna,1,6
|
179
|
+
2016/2017,28/05/17,15:30,Rapid Vienna,St. Polten,2,1
|
180
|
+
2016/2017,28/05/17,15:30,Ried,Mattersburg,2,3
|
181
|
+
2016/2017,28/05/17,15:30,Salzburg,Altach,1,0
|
182
|
+
2017/2018,22/07/17,15:00,Rapid Vienna,Mattersburg,2,2
|
183
|
+
2017/2018,22/07/17,17:30,AC Wolfsberger,Salzburg,0,2
|
184
|
+
2017/2018,22/07/17,17:30,LASK Linz,Admira,3,0
|
185
|
+
2017/2018,23/07/17,15:30,Altach,Austria Vienna,3,0
|
186
|
+
2017/2018,23/07/17,18:00,Sturm Graz,St. Polten,3,2
|
187
|
+
2017/2018,29/07/17,15:00,Salzburg,LASK Linz,1,1
|
188
|
+
2017/2018,29/07/17,17:30,Mattersburg,AC Wolfsberger,1,0
|
189
|
+
2017/2018,29/07/17,17:30,St. Polten,Rapid Vienna,1,4
|
190
|
+
2017/2018,30/07/17,15:00,Austria Vienna,Sturm Graz,2,3
|
191
|
+
2017/2018,30/07/17,17:30,Admira,Altach,4,1
|
192
|
+
2017/2018,05/08/17,15:00,LASK Linz,St. Polten,2,0
|
193
|
+
2017/2018,05/08/17,17:30,Salzburg,Admira,5,1
|
194
|
+
2017/2018,06/08/17,15:30,AC Wolfsberger,Altach,1,0
|
195
|
+
2017/2018,06/08/17,15:30,Rapid Vienna,Austria Vienna,2,2
|
196
|
+
2017/2018,06/08/17,18:00,Mattersburg,Sturm Graz,2,3
|
197
|
+
2017/2018,12/08/17,15:00,Altach,Salzburg,0,1
|
198
|
+
2017/2018,12/08/17,17:30,Austria Vienna,LASK Linz,2,0
|
199
|
+
2017/2018,12/08/17,17:30,St. Polten,Mattersburg,0,0
|
200
|
+
2017/2018,12/08/17,17:30,Sturm Graz,AC Wolfsberger,2,1
|
201
|
+
2017/2018,13/08/17,15:30,Admira,Rapid Vienna,3,1
|
202
|
+
2017/2018,19/08/17,15:00,Rapid Vienna,Sturm Graz,1,2
|
203
|
+
2017/2018,19/08/17,17:30,AC Wolfsberger,Admira,2,0
|
204
|
+
2017/2018,20/08/17,15:30,LASK Linz,Altach,0,0
|
205
|
+
2017/2018,20/08/17,15:30,Salzburg,St. Polten,5,1
|
206
|
+
2017/2018,20/08/17,18:00,Mattersburg,Austria Vienna,1,3
|
207
|
+
2017/2018,26/08/17,15:00,AC Wolfsberger,St. Polten,2,1
|
208
|
+
2017/2018,26/08/17,17:30,Rapid Vienna,LASK Linz,1,0
|
209
|
+
2017/2018,27/08/17,15:30,Altach,Mattersburg,1,0
|
210
|
+
2017/2018,27/08/17,15:30,Sturm Graz,Salzburg,1,0
|
211
|
+
2017/2018,27/08/17,18:00,Admira,Austria Vienna,1,3
|
212
|
+
2017/2018,09/09/17,15:00,LASK Linz,Sturm Graz,2,1
|
213
|
+
2017/2018,09/09/17,17:30,Austria Vienna,AC Wolfsberger,2,2
|
214
|
+
2017/2018,09/09/17,17:30,Mattersburg,Admira,0,5
|
215
|
+
2017/2018,09/09/17,17:30,St. Polten,Altach,1,2
|
216
|
+
2017/2018,10/09/17,15:30,Salzburg,Rapid Vienna,2,2
|
217
|
+
2017/2018,16/09/17,15:00,Altach,Rapid Vienna,2,2
|
218
|
+
2017/2018,16/09/17,17:30,AC Wolfsberger,LASK Linz,0,0
|
219
|
+
2017/2018,16/09/17,17:30,Admira,Sturm Graz,2,1
|
220
|
+
2017/2018,17/09/17,15:30,Mattersburg,Salzburg,1,2
|
221
|
+
2017/2018,17/09/17,18:00,Austria Vienna,St. Polten,5,1
|
222
|
+
2017/2018,23/09/17,15:00,Rapid Vienna,AC Wolfsberger,4,2
|
223
|
+
2017/2018,23/09/17,17:30,LASK Linz,Mattersburg,2,2
|
224
|
+
2017/2018,23/09/17,17:30,St. Polten,Admira,1,1
|
225
|
+
2017/2018,23/09/17,17:30,Sturm Graz,Altach,0,0
|
226
|
+
2017/2018,24/09/17,15:30,Salzburg,Austria Vienna,0,0
|
227
|
+
2017/2018,30/09/17,15:00,St. Polten,Sturm Graz,0,3
|
228
|
+
2017/2018,30/09/17,17:30,Admira,LASK Linz,4,2
|
229
|
+
2017/2018,30/09/17,17:30,Mattersburg,Rapid Vienna,0,1
|
230
|
+
2017/2018,01/10/17,15:30,Austria Vienna,Altach,2,0
|
231
|
+
2017/2018,01/10/17,18:00,Salzburg,AC Wolfsberger,2,1
|
232
|
+
2017/2018,14/10/17,15:00,LASK Linz,Salzburg,1,3
|
233
|
+
2017/2018,14/10/17,17:30,AC Wolfsberger,Mattersburg,2,2
|
234
|
+
2017/2018,14/10/17,17:30,Altach,Admira,2,2
|
235
|
+
2017/2018,14/10/17,17:30,Rapid Vienna,St. Polten,1,0
|
236
|
+
2017/2018,15/10/17,15:30,Sturm Graz,Austria Vienna,3,0
|
237
|
+
2017/2018,21/10/17,15:00,Sturm Graz,Mattersburg,3,2
|
238
|
+
2017/2018,21/10/17,17:30,Altach,AC Wolfsberger,3,2
|
239
|
+
2017/2018,21/10/17,17:30,St. Polten,LASK Linz,0,1
|
240
|
+
2017/2018,22/10/17,13:00,Admira,Salzburg,1,1
|
241
|
+
2017/2018,22/10/17,15:30,Austria Vienna,Rapid Vienna,0,1
|
242
|
+
2017/2018,28/10/17,15:00,Rapid Vienna,Admira,1,0
|
243
|
+
2017/2018,28/10/17,17:30,LASK Linz,Austria Vienna,2,2
|
244
|
+
2017/2018,28/10/17,17:30,Mattersburg,St. Polten,1,1
|
245
|
+
2017/2018,28/10/17,17:30,Salzburg,Altach,2,0
|
246
|
+
2017/2018,29/10/17,15:30,AC Wolfsberger,Sturm Graz,0,2
|
247
|
+
2017/2018,04/11/17,15:00,Sturm Graz,Rapid Vienna,0,0
|
248
|
+
2017/2018,04/11/17,17:30,Admira,AC Wolfsberger,0,0
|
249
|
+
2017/2018,04/11/17,17:30,Altach,LASK Linz,2,4
|
250
|
+
2017/2018,05/11/17,13:00,Austria Vienna,Mattersburg,1,3
|
251
|
+
2017/2018,05/11/17,15:30,St. Polten,Salzburg,1,3
|
252
|
+
2017/2018,18/11/17,15:00,LASK Linz,Rapid Vienna,1,2
|
253
|
+
2017/2018,18/11/17,17:30,Austria Vienna,Admira,2,3
|
254
|
+
2017/2018,18/11/17,17:30,Mattersburg,Altach,1,0
|
255
|
+
2017/2018,18/11/17,17:30,St. Polten,AC Wolfsberger,0,0
|
256
|
+
2017/2018,19/11/17,15:30,Salzburg,Sturm Graz,5,0
|
257
|
+
2017/2018,25/11/17,15:00,Sturm Graz,LASK Linz,1,0
|
258
|
+
2017/2018,25/11/17,17:30,Admira,Mattersburg,2,0
|
259
|
+
2017/2018,25/11/17,17:30,Altach,St. Polten,3,0
|
260
|
+
2017/2018,26/11/17,13:00,AC Wolfsberger,Austria Vienna,1,2
|
261
|
+
2017/2018,26/11/17,15:30,Rapid Vienna,Salzburg,2,3
|
262
|
+
2017/2018,28/11/17,18:00,Sturm Graz,Admira,6,1
|
263
|
+
2017/2018,29/11/17,17:30,LASK Linz,AC Wolfsberger,2,0
|
264
|
+
2017/2018,29/11/17,17:30,Salzburg,Mattersburg,2,0
|
265
|
+
2017/2018,29/11/17,17:30,St. Polten,Austria Vienna,1,0
|
266
|
+
2017/2018,29/11/17,19:30,Rapid Vienna,Altach,1,2
|
267
|
+
2017/2018,02/12/17,15:00,AC Wolfsberger,Rapid Vienna,0,0
|
268
|
+
2017/2018,02/12/17,17:30,Admira,St. Polten,1,0
|
269
|
+
2017/2018,02/12/17,17:30,Altach,Sturm Graz,1,2
|
270
|
+
2017/2018,02/12/17,17:30,Mattersburg,LASK Linz,1,0
|
271
|
+
2017/2018,03/12/17,15:30,Austria Vienna,Salzburg,1,1
|
272
|
+
2017/2018,09/12/17,15:00,Rapid Vienna,Mattersburg,2,2
|
273
|
+
2017/2018,09/12/17,17:30,LASK Linz,Admira,2,1
|
274
|
+
2017/2018,09/12/17,17:30,Sturm Graz,St. Polten,3,2
|
275
|
+
2017/2018,10/12/17,13:00,Altach,Austria Vienna,1,0
|
276
|
+
2017/2018,10/12/17,15:30,AC Wolfsberger,Salzburg,0,0
|
277
|
+
2017/2018,16/12/17,15:00,Salzburg,LASK Linz,0,0
|
278
|
+
2017/2018,16/12/17,17:30,Admira,Altach,3,1
|
279
|
+
2017/2018,16/12/17,17:30,Mattersburg,AC Wolfsberger,5,1
|
280
|
+
2017/2018,16/12/17,17:30,St. Polten,Rapid Vienna,0,5
|
281
|
+
2017/2018,17/12/17,15:30,Austria Vienna,Sturm Graz,1,0
|
282
|
+
2017/2018,03/02/18,15:00,Mattersburg,Sturm Graz,1,0
|
283
|
+
2017/2018,03/02/18,17:30,AC Wolfsberger,Altach,0,0
|
284
|
+
2017/2018,03/02/18,17:30,LASK Linz,St. Polten,2,1
|
285
|
+
2017/2018,03/02/18,17:30,Salzburg,Admira,2,1
|
286
|
+
2017/2018,04/02/18,15:30,Rapid Vienna,Austria Vienna,1,1
|
287
|
+
2017/2018,10/02/18,15:00,Altach,Salzburg,0,1
|
288
|
+
2017/2018,10/02/18,17:30,Austria Vienna,LASK Linz,1,3
|
289
|
+
2017/2018,10/02/18,17:30,St. Polten,Mattersburg,0,3
|
290
|
+
2017/2018,10/02/18,17:30,Sturm Graz,AC Wolfsberger,0,1
|
291
|
+
2017/2018,11/02/18,15:30,Admira,Rapid Vienna,2,1
|
292
|
+
2017/2018,17/02/18,15:00,Rapid Vienna,Sturm Graz,1,1
|
293
|
+
2017/2018,17/02/18,17:30,AC Wolfsberger,Admira,1,3
|
294
|
+
2017/2018,17/02/18,17:30,LASK Linz,Altach,2,0
|
295
|
+
2017/2018,17/02/18,17:30,Mattersburg,Austria Vienna,2,1
|
296
|
+
2017/2018,18/02/18,15:30,Salzburg,St. Polten,4,0
|
297
|
+
2017/2018,24/02/18,15:00,Admira,Austria Vienna,2,1
|
298
|
+
2017/2018,24/02/18,17:30,AC Wolfsberger,St. Polten,0,1
|
299
|
+
2017/2018,24/02/18,17:30,Altach,Mattersburg,1,1
|
300
|
+
2017/2018,24/02/18,17:30,Rapid Vienna,LASK Linz,2,0
|
301
|
+
2017/2018,25/02/18,15:30,Sturm Graz,Salzburg,2,4
|
302
|
+
2017/2018,03/03/18,15:00,LASK Linz,Sturm Graz,0,2
|
303
|
+
2017/2018,03/03/18,17:30,Austria Vienna,AC Wolfsberger,2,0
|
304
|
+
2017/2018,03/03/18,17:30,Mattersburg,Admira,3,2
|
305
|
+
2017/2018,03/03/18,17:30,St. Polten,Altach,1,2
|
306
|
+
2017/2018,04/03/18,15:30,Salzburg,Rapid Vienna,1,0
|
307
|
+
2017/2018,10/03/18,15:00,Altach,Rapid Vienna,0,0
|
308
|
+
2017/2018,10/03/18,17:30,AC Wolfsberger,LASK Linz,0,3
|
309
|
+
2017/2018,10/03/18,17:30,Admira,Sturm Graz,2,4
|
310
|
+
2017/2018,10/03/18,17:30,Austria Vienna,St. Polten,4,0
|
311
|
+
2017/2018,11/03/18,15:30,Mattersburg,Salzburg,2,2
|
312
|
+
2017/2018,17/03/18,15:00,Rapid Vienna,AC Wolfsberger,5,1
|
313
|
+
2017/2018,17/03/18,17:30,LASK Linz,Mattersburg,3,1
|
314
|
+
2017/2018,17/03/18,17:30,St. Polten,Admira,1,2
|
315
|
+
2017/2018,17/03/18,17:30,Sturm Graz,Altach,1,0
|
316
|
+
2017/2018,18/03/18,13:30,Salzburg,Austria Vienna,5,0
|
317
|
+
2017/2018,31/03/18,15:00,Admira,LASK Linz,0,1
|
318
|
+
2017/2018,31/03/18,17:30,Austria Vienna,Altach,2,1
|
319
|
+
2017/2018,31/03/18,17:30,Salzburg,AC Wolfsberger,2,0
|
320
|
+
2017/2018,31/03/18,17:30,St. Polten,Sturm Graz,1,5
|
321
|
+
2017/2018,01/04/18,15:30,Mattersburg,Rapid Vienna,2,4
|
322
|
+
2017/2018,07/04/18,15:00,Sturm Graz,Austria Vienna,0,2
|
323
|
+
2017/2018,07/04/18,17:30,AC Wolfsberger,Mattersburg,0,2
|
324
|
+
2017/2018,07/04/18,17:30,Altach,Admira,1,2
|
325
|
+
2017/2018,07/04/18,17:30,Rapid Vienna,St. Polten,2,1
|
326
|
+
2017/2018,08/04/18,14:00,LASK Linz,Salzburg,1,0
|
327
|
+
2017/2018,14/04/18,15:00,Sturm Graz,Mattersburg,3,0
|
328
|
+
2017/2018,14/04/18,17:30,Altach,AC Wolfsberger,2,1
|
329
|
+
2017/2018,14/04/18,17:30,St. Polten,LASK Linz,1,3
|
330
|
+
2017/2018,15/04/18,15:30,Austria Vienna,Rapid Vienna,0,4
|
331
|
+
2017/2018,15/04/18,18:00,Admira,Salzburg,2,6
|
332
|
+
2017/2018,21/04/18,15:00,AC Wolfsberger,Sturm Graz,2,1
|
333
|
+
2017/2018,21/04/18,17:30,LASK Linz,Austria Vienna,1,0
|
334
|
+
2017/2018,21/04/18,17:30,Mattersburg,St. Polten,1,1
|
335
|
+
2017/2018,22/04/18,13:30,Salzburg,Altach,3,1
|
336
|
+
2017/2018,22/04/18,15:30,Rapid Vienna,Admira,4,1
|
337
|
+
2017/2018,28/04/18,15:00,Austria Vienna,Mattersburg,2,3
|
338
|
+
2017/2018,28/04/18,17:30,Admira,AC Wolfsberger,4,2
|
339
|
+
2017/2018,28/04/18,17:30,Altach,LASK Linz,0,2
|
340
|
+
2017/2018,29/04/18,15:30,Sturm Graz,Rapid Vienna,4,2
|
341
|
+
2017/2018,29/04/18,18:00,St. Polten,Salzburg,0,2
|
342
|
+
2017/2018,05/05/18,15:00,LASK Linz,Rapid Vienna,0,2
|
343
|
+
2017/2018,05/05/18,17:30,Austria Vienna,Admira,0,0
|
344
|
+
2017/2018,05/05/18,17:30,Mattersburg,Altach,0,1
|
345
|
+
2017/2018,05/05/18,17:30,St. Polten,AC Wolfsberger,0,1
|
346
|
+
2017/2018,06/05/18,15:30,Salzburg,Sturm Graz,4,1
|
347
|
+
2017/2018,12/05/18,15:00,Sturm Graz,LASK Linz,3,1
|
348
|
+
2017/2018,12/05/18,17:30,Admira,Mattersburg,1,1
|
349
|
+
2017/2018,12/05/18,17:30,Altach,St. Polten,1,3
|
350
|
+
2017/2018,13/05/18,15:30,Rapid Vienna,Salzburg,1,4
|
351
|
+
2017/2018,15/05/18,18:00,AC Wolfsberger,Austria Vienna,2,1
|
352
|
+
2017/2018,20/05/18,15:30,LASK Linz,AC Wolfsberger,1,3
|
353
|
+
2017/2018,20/05/18,15:30,Rapid Vienna,Altach,4,1
|
354
|
+
2017/2018,20/05/18,15:30,Salzburg,Mattersburg,1,0
|
355
|
+
2017/2018,20/05/18,15:30,St. Polten,Austria Vienna,2,0
|
356
|
+
2017/2018,20/05/18,15:30,Sturm Graz,Admira,2,0
|
357
|
+
2017/2018,27/05/18,16:30,AC Wolfsberger,Rapid Vienna,0,0
|
358
|
+
2017/2018,27/05/18,16:30,Admira,St. Polten,0,2
|
359
|
+
2017/2018,27/05/18,16:30,Altach,Sturm Graz,0,0
|
360
|
+
2017/2018,27/05/18,16:30,Austria Vienna,Salzburg,4,0
|
361
|
+
2017/2018,27/05/18,16:30,Mattersburg,LASK Linz,2,1
|
362
|
+
2017/2018,31/05/18,17:30,Neustadt,St. Polten,0,2
|
363
|
+
2017/2018,03/06/18,14:30,St. Polten,Neustadt,1,1
|