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

/dev/null
03.09.2017
08:11:21

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

Google

/dev/null
03.09.2017
08:12:51
спасибо еще раз

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

/dev/null
03.09.2017
08:15:32
И еще один, Go умеет «внутри себя» bash скрипты выполнять, или необходимо создавать прям файл script.sh?

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

/dev/null
03.09.2017
08:27:42

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

/dev/null
03.09.2017
08:29:34

Google

N
03.09.2017
08:29:39

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

N
03.09.2017
08:31:20

Michael
03.09.2017
08:31:28

/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

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

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

Akmurat
03.09.2017
09:50:22

Anton
03.09.2017
09:55:40
У нас тоже были любители и в 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

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

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
Сильное заявление)
ни разу не сталкивался с стуацией, где без дженериков никуда. Вот метапрограммирования реально не хватает

Andrew
03.09.2017
17:14:22

Мерлин
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
через рефлексию

Andrew
04.09.2017
04:42:24

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

Pawel
04.09.2017
05:22:17