NeМакс
Добрый вечер. Подскажите в чем проблема при работе с либой xlsx от tealeg. Данные на вход подаю нормальные без дубликатов.
Открываю файл и в цикле перебираю sheet. Перебираю массив с данными во вложенном цикле и создаю каждый раз новую строку и ячейки. В итоге он мне id пишет неверный.
Попробовал записать в новый файл. Всё повторяется. Пишет все данные верно кроме первой ячейки id.
Код примерно такой
file = xlsx.NewFile()
sheet, err = file.AddSheet("Table")
functions.Check(err)
for _, dataElem := range data {
row = sheet.AddRow()
cell = row.AddCell()
cell.Value = dataElem.Id
. . . // Добавляю другие ячейки
}
NeМакс
id дублируются из неизвестных мест
Andrey
пишите dataElem.Id в лог рядом с присваиванием. Это я к тому, что dataElem в цикле переиспользуется, и если там ссылки в структуре, то данные ячейки могут затираться. Как вариант, можно итерировать по индексу
for i, _ := range data {
...
cell.Value = data[i].Id
NeМакс
NeМакс
При сортировке в LibreOffice сортировал только одну колонку x)
NeМакс
а дубляж из за категорий
Zver
NeМакс
NeМакс
for _, x := range data{
for i, y := range data{
if x.Id == y.Id {
data = data(data[:i], data[i+1:]...)
}
}
}
Как подобное удаление дубликатов можно организовать?
Vladislav
NeМакс
Vladislav
NeМакс
И что?
Спасибо за мысль под другим углом) У меня в слайсы структур собираются данные из парсера (goquery). В одном из циклов EachWithBreak я делаю цикл по уже записанным продуктам и выхожу из цикла, если id совпадают. Надеюсь это не скажется на производительности в 10000 элементов.
NeМакс
Множество циклов меня пугает
Vladislav
NeМакс
Vladislav
_, ok := map[id];
NeМакс
Ого я забыл уже. Спасибо попробую
🏁Александр
ээм
🏁Александр
кстати с юбилеем :)
🏁Александр
ровно 1500 подписичиков
Slava
у меня 1499 показывает
NeМакс
Slava
с десктоп клиента
NeМакс
Может интернет слабый
Slava
какие у нас проблемы скучные в го канале, посидел неделю в расте, там у них вообще огонь
Slava
что ни день, то расследование
Slava
то строчки не конвертятся, то дженерики не так раскрываются
NeМакс
🤔
Slava
видно, что люди мозг напрягают каждый день, пока вы тут код пишите
NeМакс
NeМакс
Я бы вот поделился проблемой про http handle errors но лучше пойду писать код :D
🏁Александр
ну поделись
🏁Александр
@kagemakkusu а что за проблема то?
Andrey
Привет, ребзя подскажите, а по философии го, если ты работаешь над несколькими проектами то у тебя должен менятся GOPATH или все твои проекты должны находится внутри одного GOPATH, или ты должен добавлять новые пути в GOPATH?
Andrey
с последним вариантом непонятно тогда с go get
Slava
всё зависит от того, ортодокс ты или последователь нового вендора
Slava
я за то чтобы иметь GOPATH на каждый проект
Slava
отдельный
heavycharged
GOPATH на каждый отдельный проект, это dep?
Andrey
Slava
не, ортодокс стайл это один gopath на всех
NeМакс
Незнаю как вы а я по привычке в go/src/директорияпроекта 😂
Andrey
Slava
скажи это гуглу =)
Andrey
ну хз, если для разных проектов разные версии либ нужны, то как тогда при ордодокс подходе?
NeМакс
Людии что опять делаю не так.
Создаю цикл с ссылками для запросов
Взываю функцию с запросами
data_chan := functions.Grab(link, bar)
Создаю канал в файле с функцией который вызываю потом в main
c := make(chan map[int]*structures.Data)
Создаю в цикле две горутины как здесь https://habrahabr.ru/post/197598/
Заполняю карту
data[id] = &structures.Data{...}
Отдаю в канал
c <- data и возвращаю из функции которая собирает данные return c
Получаю данные в цикле после вызова
data = <-data_chan
IDE предупреждает что
Cannot use <-data_chan(type *structures.Data) as type map[int]*Data ...
Andrey
я просто только вкатываюсь в го, решил сделать на нем свой pet проджект. Получается что флоу при создании нового проекта может быть таким:
1) создаем папку нового проекта, в ней bin, pkg, src. переопределяем GOPATH и указываем там созданую родительскую папку
2) в src создаем папку с именем своего проекта, например some_project
3) в src/some_project создаем git репу и начинаем кодить
примерно так?
NeМакс
NeМакс
Andrey
спасибо
NeМакс
freezlite
подписывайтесь на мои голые фотки
freezlite
в инстаграмме
NeМакс
без регистрации и смс
heavycharged
Andrey
Andrey
и если мне для разных проектов нужны разные версии либ
heavycharged
скажем так, GOPATH делаете первый раз при устнановке go, а не каждый раз при создании нового проекта.
Andrey
окей, читну про dep
heavycharged
если нужны разные версии разных либ, используйте dep
🎉
NeМакс
Доброе утро люди) У меня проблема при get запросах. Мне при медленном интернет соединении выкидывает ошибку TLS handshake timeout. Я нашел решение в виде создания контекста с отментой. Саму отмену контекста я не вызываю и передаю в _ . Правильно ли так поступать?
🎉
🎉
Сам подумай, многопоточный грабер одного сайта))) Бред!
🎉
У меня два сайта, на каждый по функции, работают так быстро, что пришлось прописывать паузу, ибо Вконтактик не осилял столько гавна публиковать.
NeМакс
🎉
Причём в два этапа, сначала линки дёргаю, потом контент по этим линкам, а ещё сортировка по ключевым словам, и в финале публикация...
🎉
И да, отдельно парсю ссылки, заголовки, картинки и текст статьи...
NeМакс
ну это норма
NeМакс
на сервере
NeМакс
а когда ты из дома запускаешь это уже другое дело
NeМакс
мне осталось только скомпилить под винду
NeМакс
сейчас буду читать
🎉
Какая нахрен разница откуда запускать? Я то изначально так и запускал из дома, потом када уже отладил по феншую на сервак закинул.
NeМакс
NeМакс
ты же не объяснишь юзверу что если у него вот дико медленный инет то не надо качать фильмы параллельно