@gogolang

Страница 490 из 1630
ros
03.09.2017
08:09:41
это же разовая операция или файлы периодичемки прибывают откуда-то?

можно прочитать файл и взять байты из буфера пропустив первые 45 потом переконвертить кодировку и анмаршалить

/dev/null
03.09.2017
08:11:21
это же разовая операция или файлы периодичемки прибывают откуда-то?
Я загружаю 77 архивов, в каждом по 2 xml файла, парсю по одному архиву (получается что на один архив (2xml файла) нужно будет запускать один раз…

ros
03.09.2017
08:12:09
тогда то что дал вполне достаточно и не надо костылять на go

Google
/dev/null
03.09.2017
08:12:51
тогда то что дал вполне достаточно и не надо костылять на go
Ок, ок, если до завтра не решу, то так и поступлю

спасибо еще раз

ros
03.09.2017
08:13:17
vlad@vlad-pc-home:/tmp$ ls -l *.xml -rw-r--r-- 1 vlad vlad 137 сен 3 12:47 sdsadw.xml -rw-r--r-- 1 vlad vlad 136 сен 3 12:47 sdsad.xml vlad@vlad-pc-home:/tmp$ for OUTPUT in $(ls *.xml); do cat $OUTPUT | sed '0,/encoding="windows-1251"/s/encoding="windows-1251"/encoding="utf-8"/' | iconv -f cp1251 -t utf8 -o $OUTPUT.utf8.xml; done vlad@vlad-pc-home:/tmp$ ls -l *.xml -rw-r--r-- 1 vlad vlad 137 сен 3 12:47 sdsadw.xml -rw-r--r-- 1 vlad vlad 130 сен 3 13:12 sdsadw.xml.utf8.xml -rw-r--r-- 1 vlad vlad 136 сен 3 12:47 sdsad.xml -rw-r--r-- 1 vlad vlad 129 сен 3 13:12 sdsad.xml.utf8.xml

Daniel
03.09.2017
08:22:50
что такое "внутри себя"?

/dev/null
03.09.2017
08:27:42
что такое "внутри себя"?
Ну нечто вроде Exec()

Daniel
03.09.2017
08:28:26
Не знаю, вот и спрашиваю
ну мы же не знаем, что имеенно вам надо

правильно это делается так: новый файл, потом mv на место старого

Google
N
03.09.2017
08:29:39
И еще один, Go умеет «внутри себя» bash скрипты выполнять, или необходимо создавать прям файл script.sh?
не уверен. а вот lua скрипты «внутри себя» умеет - может тебе подойдет. пакетик качнешь для луа и все

Michael
03.09.2017
08:30:28
пакетик lua

ору

N
03.09.2017
08:31:20
ору
на кого?

Michael
03.09.2017
08:31:28
правильно это делается так: новый файл, потом mv на место старого
на всяк случай перед этим старый файл в *.old переименовать

/dev/null
03.09.2017
08:31:41
В документации экземп package main import ( "log" "os/exec" ) func main() { cmd := exec.Command("sleep", "1") log.Printf("Running command and waiting for it to finish...") err := cmd.Run() log.Printf("Command finished with error: %v", err) } Но может ли он комбинировать команды

Daniel
03.09.2017
08:31:59
этот - нет

/dev/null
03.09.2017
08:33:37
На просторах стековерфлоу нашел package main import ( "os" "os/exec" "fmt" "strings" "path/filepath" ) var ( output_path = filepath.Join("./output") bash_script = filepath.Join( "_script.sh" ) ) func checkError( e error){ if e != nil { panic(e) } } func exe_cmd(cmds []string) { os.RemoveAll(output_path) err := os.MkdirAll( output_path, os.ModePerm|os.ModeDir ) checkError(err) file, err := os.Create( filepath.Join(output_path, bash_script)) checkError(err) defer file.Close() file.WriteString("#!/bin/sh\n") file.WriteString( strings.Join(cmds, "\n")) err = os.Chdir(output_path) checkError(err) out, err := exec.Command("sh", bash_script).Output() checkError(err) fmt.Println(string(out)) } func main() { commands := []string{ "echo newline >> foo.o", "echo newline >> f1.o", "echo newline >> f2.o", } exe_cmd(commands) }

Daniel
03.09.2017
08:34:19
ну - типа того

/dev/null
03.09.2017
08:35:03
В общем может)

ros
03.09.2017
08:39:57
накой ляд это тянуть в Go? поупражняться в костылестроительстве так хочется чтоль?

/dev/null
03.09.2017
08:42:46
накой ляд это тянуть в Go? поупражняться в костылестроительстве так хочется чтоль?
Думаешь более правильно будет создать sh скрипт и только запускать его из Go?

Daniel
03.09.2017
08:43:14
думаю - этого делать не надо вообще

ros
03.09.2017
08:43:44
руками запустить и забыть

/dev/null
03.09.2017
08:45:08
руками запустить и забыть
В моем случае руками это не вариант

У нас веселые ребята в Терфонде сидят, пишут на сисярп и очень любят cp1251 пихают его везде где только можно

И всей области отчеты шлют в этой кодировке

Andrew
03.09.2017
08:50:20
И всей области отчеты шлют в этой кодировке
Зато экономят по байту на символ!

/dev/null
03.09.2017
08:51:57
Зато экономят по байту на символ!
да хз, они ток сначала года на xml перешли до этого в dbf кидали

Akmurat
03.09.2017
09:27:49
У кого есть Го на практике книга на русском поделитесь если не жалко

Google
Roman ?
03.09.2017
09:28:19
Если есть нормальный перевод, было бы круто

Мерлин
03.09.2017
09:40:54
У кого есть Го на практике книга на русском поделитесь если не жалко
Посмотри в документах конференции, вроде там есть

Akmurat
03.09.2017
09:44:28
Alan
03.09.2017
09:46:27
Я смотрел там на все на English
Можешь скинуть ссылку?)

Akmurat
03.09.2017
09:50:22
Можешь скинуть ссылку?)
Зайди на shared media этой группы там в доках она стоит

Anton
03.09.2017
09:55:40
У нас веселые ребята в Терфонде сидят, пишут на сисярп и очень любят cp1251 пихают его везде где только можно
https://stackoverflow.com/questions/6002619/unmarshal-an-iso-8859-1-xml-input-in-go http://blog.tristanmedia.com/2014/10/using-go-to-parse-non-utf8-xml-feeds/ Не подходит?

У нас тоже были любители и в win1251 слать, и в iso

/dev/null
03.09.2017
09:56:53
Andrew
03.09.2017
10:56:12
Vasily Romanov
03.09.2017
12:31:20
Уже видел, не подходит мне мешается именно строка в документе
может вычитать просто начало и в нём заменить? чтобы не гонять байты туда-сюда

а потом остальное дочитать

и быстро будет

/dev/null
03.09.2017
12:32:22
К сожалению я не знаю как это сделать ?

Vasily Romanov
03.09.2017
12:34:41
>> byteValue, _ := ioutil.ReadAll(xmlFile) >> var zl_list models.ZL_LIST вот тут ты всё вычитывашь перед этим надо вычитать кусок, байтов 100, может 200 и в нём заменить есть тебе только это мешает

можно даже руками найти по байтовой позиции и заменить там, уже в вчитанном файле

/dev/null
03.09.2017
12:37:30
я имею введу, как это в коде выглядит.

Vasily Romanov
03.09.2017
12:39:56
дай 1 строчку фалй

xml

byteValue[x:y] = []byte(`utf8" `) ты просто заменяешь кодировку вместе с полесдней кавычкой на то что надо тебе - в данном случае utf8 и пробелы чтобы слайс не пересоздавать по коду неправильно :) там подругому как-т опишется, н оя спал 2 часа и не соображаю там ты берёшь слайс, который ссылается на ту же область памяти и меняешь его

Google
/dev/null
03.09.2017
12:41:55
дай 1 строчку фалй
<?xml version="1.0" encoding="windows-1251"?>

Vasily Romanov
03.09.2017
12:42:36
https://s.mail.ru/N5EU/FMXjDbcEv

вот типа так :)

это если упарываться по памяти

copy

Admin
ERROR: S client not available

Vasily Romanov
03.09.2017
12:43:31
тебе нужен copy

/dev/null
03.09.2017
12:44:04
тебе нужен copy
Мужик, ты слишком крут, я вообще хз как это сделать)

Vasily Romanov
03.09.2017
12:44:23
a := byteValue[31, 44] copy(a, []byte(`utf8" `))

вот так типа

/dev/null
03.09.2017
12:44:46
вот так типа
спс, завтра попробую

Vasily Romanov
03.09.2017
12:45:02
это если тебе надо в 1 месте поменять кусок :)

/dev/null
03.09.2017
12:45:11
Можно тебе в ЛС завтра вопросами подставить пожалуйста?

Vasily Romanov
03.09.2017
12:45:33
сюда пиши лучше, будет время - отвечу

или кто быстрей меня что дельнео скажет

/dev/null
03.09.2017
12:45:52
ок

Vasily Romanov
03.09.2017
12:47:27
copy(byteValue[31, 44], []byte(`utf8" `)) может вот так даже пройдёт

сделай потом println( string( byteValue[:100] ) для просмотра результата

/dev/null
03.09.2017
12:50:38
ок

Google
/dev/null
03.09.2017
12:51:04
Завтра проверю, сегодня уже голова не соображает

Pawel
03.09.2017
12:52:09
Здравствуйте, ребята! Давно мучает вопрос, а что в Go используют вместо дженериков?
Там, где в других языках используют дженерики, в гошечке в 90% случаев используют интерфейсы или просто обходятся без джененриков, в 10% - копипаста, рефлексия и кодогенерация, именно в таком порядке приоритетов. Смысл в том, что generic’и с template’ами в других языках программирования используют не по назначению в большинстве случаев, что приводит к необоснованному усложнению кода, замедлению скорости компиляции, разрастанию скомпилированных бинарников. И только в паре процентов случаев использование generic’ов дает реальный выигрыш в качестве кода. В 99% случаев это стандартный набор контейнеров и алгоритмов для произвольных типов данных. Разработчики go готовы добавить generic’и, если удастся реализовать их в таком виде, чтобы максимально затруднить их неверное использование, в то же время максимально упростить их корректное использование. Проблема в том, что такие дженерики пока никто не придумал. См. golang.org/doc/faq#generics

Vasily Romanov
03.09.2017
12:53:14
ну и ещё есть консорльный iconv если выяснится всё же, чт отебе надо конвертить ВСЁ тем более что до выдова консрольных скриптов тут дело уже дошло

/dev/null
03.09.2017
12:53:17
Там, где в других языках используют дженерики, в гошечке в 90% случаев используют интерфейсы или просто обходятся без джененриков, в 10% - копипаста, рефлексия и кодогенерация, именно в таком порядке приоритетов. Смысл в том, что generic’и с template’ами в других языках программирования используют не по назначению в большинстве случаев, что приводит к необоснованному усложнению кода, замедлению скорости компиляции, разрастанию скомпилированных бинарников. И только в паре процентов случаев использование generic’ов дает реальный выигрыш в качестве кода. В 99% случаев это стандартный набор контейнеров и алгоритмов для произвольных типов данных. Разработчики go готовы добавить generic’и, если удастся реализовать их в таком виде, чтобы максимально затруднить их неверное использование, в то же время максимально упростить их корректное использование. Проблема в том, что такие дженерики пока никто не придумал. См. golang.org/doc/faq#generics
Сильное заявление)

Pawel
03.09.2017
13:02:32
Здравствуйте, ребята! Давно мучает вопрос, а что в Go используют вместо дженериков?
А по поводу обощённых контейнеров - в основном каждый день используют array и hashmap. Эти два контейнера встроены в Go и позволяют работать с произвольными типами. Остальные контейнеры используются настолько редко, что не составляет никакого труда написать их кастомную реализацию под требуемый тип данных.

Сильное заявление)
ни разу не сталкивался с стуацией, где без дженериков никуда. Вот метапрограммирования реально не хватает

Мерлин
03.09.2017
19:01:20
? Selecting an Event Architecture #AsyncAPI #APIs #microservices #Programming #Tech #java #golang #php #nodejs #code https://www.infoq.com/news/2017/08/selecting-event-architecture?utm_source=infoqWeeklyNewsletter&utm_medium=WeeklyNL_EditorialContent_architecture-design&utm_campaign=08292017news&utm_content=top

/dev/null
04.09.2017
04:13:48
charmap.Windows1251.NewDecoder() в charmap.Windows1251 теперь нет функции NewDecoder?



Vadiimmm:-)))
04.09.2017
04:32:42
type Response2 struct { Page int `zzz:"page"` Fruits []string `xxx:"fruits"` } Парни, можно както обращаться в структуре к свойствам zzz xxx в примере?

Peter
04.09.2017
04:34:49
через рефлексию

Vadiimmm:-)))
04.09.2017
04:43:18
?????? спасибо

Pawel
04.09.2017
05:22:17
Сталкивался. В append/make.
ну они в гошечке есть значит всё хорошо

Страница 490 из 1630