Sergey
Создать текстовый файл и вычитывать его, либо импортировать с помощью embed, но это всё - костыли
dima
Подскажите
dima
Это корректный пример паттерна adapter?
Вова
Добрый день. Пробую спарсить описание, но не пому, как к нему достучаться. И есть в go возможность парсить по xpath ?
Вова
Ghost
Люди, зелёный в го. Объясните как проверить os.ReadDir на пустоту ?
Ghost
Потому что он возвращает fs.DirState что-ли
Ghost
Ну массив вернее этого
Ghost
Щя проверю, спасибо)
Anonymous
Люди, зелёный в го. Объясните как проверить os.ReadDir на пустоту ?
Именно что в массиве нет никаких элементов?
Ghost
В массиве нет элементов тип
Sergey
Подскажите, как сделать два метода? append() и readAt(n) Например есть структура: type s struct { х float64, y float64, date uint64 } append(s) //добавить структуру в конец файла (или начало что там проще) и slice = readAt(n) //вернуть в slice n последних добавленных элементов из файла
Sergey
может есть уже готовое… вроде задача типовая
Rostislav
Rostislav
на Objc
тогда странное предположение, что задача типовая. Эту структуру можно в файл зааппендить бесконечным числом способов. можно так: 1.23 4.56 05.12.2004 можно так: 1.23;4.56;05.12.2004 можно json'ом можно бинарным способом. и т.д. и т.д.
Rostislav
поэтому надо выбирать нужный способ и писать. Но это несложно. открыть файл записать туда строку, потом еще одну потом закрыь файл
Rostislav
готовое может и есть в интернете, но дольше искать
Sergey
у меня перезатираются данные
Vladislav
я не понимаю как сделать append
открой файл на добавление, и пиши
Rostislav
https://stackoverflow.com/questions/7151261/append-to-a-file-in-go
Rostislav
1й ответ
Sergey
что бы не открывать его постоянно и не закрывать (раз в секунду происходит запись)
Vladislav
я открыл на RDWR
добавление A
Sergey
добавление A
пардон, RDWR/APPEND
Sergey
Sergey
Vladislav
сколько писак?
Sergey
просто раз в секунду делает запись по одной структуре
Sergey
и иногда надо прочитчать последние 10 скажем для нужд
Rostislav
а что такое db?
Rostislav
там файл fp зовется
Vladislav
и иногда надо прочитчать последние 10 скажем для нужд
а после чтения указатель переставляется корректно?
Sergey
а что такое db?
db глобальная
Sergey
db = fp
Sergey
Rostislav
легче с полным кодом
Sergey
Rostislav
скинь на плейграунд
Vladislav
загугли го плейграунд и накидай туда
Sergey
вроде так
Vladislav
у тебя там ошибки синтаксиса
Sergey
да я поправил
Sergey
https://go.dev/play/p/ZauYulpva7N
Vladislav
работает как положено, как воспроизвести баг?
Sergey
работает как положено, как воспроизвести баг?
короче сейчас у меня вроде бы размер файла увеличивается, но промежутки порядка 5 минут между обновлениями, значит append работает 1. вопрос как укоротить этот период? 2. метод Items не рабочий
Sergey
запись в файл видимо отложенная
Илья
https://go.dev/play/p/ZauYulpva7N
ого, новый дизайн
Sergey
1. func (f *File) Sync() ?
пока никак не помогло
Vladislav
ну задавай вопросы своей системе, у меня сразу в файл улетает
Sergey
в методе Add все верно же? или надо делать запись через db.Write() ?
Vladislav
собсна при закрытии файла (при завершении работы вызывается), оно автоматом пишет остатки из буфера
Vladislav
хотя дефера нет, странно
Sergey
или так правильнее?
Sergey
окей, как прочитать N последних записанных элементов
Илья
Из документации пакета os Sync commits the current contents of the file to stable storage. Typically, this means flushing the file system's in-memory copy of recently written data to disk.
Sergey
Илья
сам файл не обновляется?
Илья
посмотрите его через терминал, иде не сразу обновляет
Vladislav
лучше после всех добавлений, один раз
Sergey
посмотрите его через терминал, иде не сразу обновляет
да ls -lh говорит что обновляется раз в секунду или пару, все ок
Sergey
ребят, как прочитать последние N элементов из файла в slice
Vladislav
размер структуры * N, и прыгай func (f *File) Seek(offset int64, whence int) (ret int64, err error)
Илья
ок
если бд может использовать одно приложение, то лучше добавить блокировку (типо .lock файла) и вызывать .Sync() только в конце