Skip to content

Instantly share code, notes, and snippets.

@goocey
Created February 27, 2020 08:41
Show Gist options
  • Save goocey/7ab654dfd1fbbee1af2537722bcc344b to your computer and use it in GitHub Desktop.
Save goocey/7ab654dfd1fbbee1af2537722bcc344b to your computer and use it in GitHub Desktop.
package main
import (
"encoding/csv"
"fmt"
"os"
"strconv"
)
// Order 取引
type Order struct {
date string
money int
line int
content string
regtype string
}
func main() {
file, err := os.Open("仕訳帳 (2019年01月_2019年12月).csv")
if err != nil {
panic(err)
}
defer file.Close()
reader := csv.NewReader(file)
var line []string
var order []Order
var lineNum int = 0
for {
line, err = reader.Read()
if err != nil {
break
}
var money, _ = strconv.Atoi(line[3])
lineNum++
order = append(order, Order{date: line[1], money: money, line: lineNum, content: line[15], regtype: line[2]})
}
for _, dupOrder := range GetDuplicateData(order) {
fmt.Println(dupOrder)
}
}
// GetDuplicateData 重複行を返却
func GetDuplicateData(orders []Order) []Order {
var duplicateOrder []Order
for _, order1 := range orders {
for _, order2 := range orders {
if order1.line != order2.line &&
(order1.date == order2.date && order1.money == order2.money && order1.content == order2.content && order1.regtype == order2.regtype) {
duplicateOrder = append(duplicateOrder, order1)
}
}
}
return duplicateOrder
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment