Semua berang-berang!Hari ini adalah hari Jumat, dan itu berarti saatnya mengambil stok!Melanjutkan tema klub perpustakaan kami, aku cepat-cepat membuat semua orang terlibat sedikit bahagia: Aku berhasil!Setelah lautan sel-sel saraf yang dihabiskan, setelah banyak dokumentasi tentang format marc, dan sekelompok kruk, saya masih mengumpulkan konverter yang relatif waras (tetapi masih dengan kode yang mengerikan :)) (+ handler + semua yang cukup untuk fantasi) untuk format marc.https://github.com/HerzenLibRu/BatchMarc (handler, aturan ditulis dalam js)https://github.com/t0pep0/marc21 (perpustakaan on Go untuk bekerja dengan format marc)Anda dapat menjalankannya seperti ini:jalankan main.go inputFile.ldb outputFile.ldb rules.jsAturan diterapkan untuk setiap entri marc dalam file.Dokumentasi belum ditulis, tetapi apakah segalanya ada di depan kita? =)Beberapa nuansa perpustakaan (dan, karenanya, dari konverter):- subbidang disimpan dalam daftar tertaut dengan pengurutan saat ditambahkan (permintaan spesifik dari kolega tidak mengizinkan penggunaan hashmap)
- Memberi Nama Bendera Pemimpin yang Tidak Mungkin Anda Sukai
Fitur aturan penulisan:Ketika aturan Anda mulai berjalan, sudah ada dua objek: orig dan res - orig - catatan asli, res - apa yang akhirnya akan ditulis ke file output, dan ketika aturan Anda mulai, res adalah objek kosong, hanya diinisialisasi, di sedangkan orig diisi dengan data  function VariableSubField(name, data){
      this.Name = name;
      this.Data = data;
    }
    function VariableField(tag, indicatorOne, indicatorTwo) {
      this.Tag = tag;
      this.IndicatorOne = indicatorOne;
      this.IndicatorTwo = indicatorTwo;
      this.RawData = [];
      this.SubField = [];
    }
    function Leader() {
        this.Status = "";
        this.Type = "";
        this.BibLevel = "";
        this.ControlType = "";
        this.CharacterEncoding = "";
        this.IndicatorCount = "";
        this.SubfieldCodeCount = "";
        this.EncodingLevel = "";
        this.CatalogingForm = "";
        this.MultipartLevel = "";
        this.LengthOFFieldPort = "";
        this.StartCharPos = "";
        this.LengthImplemenDefine = "";
        this.Undefine = "";
    }
    function MarcRecord(){
      this.Leader = new Leader()
      this.VariableField = []
    };
    orig = new MarcRecord();
    res = new MarcRecord();
Ketika aturan Anda berhasil, Go akan mengambil data dari res, dan menulisnya ke file.Perhatian! Kode tidak dioptimalkan, menganggapnya sebagai produk terkecil yang layak.Contoh aturan dapat ditemukan di repositori BatchMarc.PullRequest, IssueRequest - diterima olehUPD: js untuk aturan penulisan dipilih sebagai bahasa yang paling banyak didistribusikan (di lingkungan perpustakaan, termasuk)