я бы сделал так.
Читать текстовый файл в список.
Затем получить подсписок. с 0 по 29 элементы. Затем "удалить часть" из предыдущего списка, с 0 по 29 элементы
установить переменную "перенос строки"
затем преобразовать новый подсписок в строку, используя как разделитель ту самую переменную Перенос строки.
Эту полученную строку переводим Транслейтером.
пишем допустим в файл. Ставим галочку дописывать
повторяем циклично пока все элементы первого списка не будут вытащены по 30 штук.
Когда все кончено, у нас в текстовике готовые переведенные строки все
Как изменить кодировку при записи файла
-
Вы говорили что пользуетесь утилиткой давно
Где я такое говорил?
Например csv оригинал имеет 130 строк выходной подрезает и получается 100 или 25-75 как получится...
Приложите проблемый файл к сообщению. посмотрю в чём может быть причина
-
В общем проблема более менее понятна.
Встречаются разные символы на источнике которые утилита не читает или не понимает, если их заменять на что-то тогда конвертится нормально без обрезок.
Символы которые встречаются в разных случаях разные,тут помоему общего решения нет. В каждом отдельном случае нужно смотреть на чем затык и добавлять его в обработку -
Обратился к разработчику за помощью в решении проблемы с конвертацией.
Выложу это тут для будущих поколений ))
Через node js проблема решается полностью, для работы нужно поставить модуль encoding
Следующий код решает проблемыvar fs = require('fs'); var encoding = require('encoding'); //Читаем файл в utf-8 кодировке(BAS всегда сохраняет в utf-8) var text = fs.readFileSync('C:/dev/encoding/text.txt', 'UTF-8'); //Конвертим var result = encoding.convert(text, 'WINDOWS-1251', 'UTF-8'); //Пишем в файл fs.writeFileSync('C:/dev/encoding/converted.txt', result);Код если пути у нас в переменных
var fs = require('fs'); var encoding = require('encoding'); //Читаем файл в utf-8 кодировке(BAS всегда сохраняет в utf-8) var text = fs.readFileSync([[NEW_VARIABLE]] + '111.csv', 'UTF-8'); //Конвертим var result = encoding.convert(text, 'WINDOWS-1251', 'UTF-8'); //Пишем в файл fs.writeFileSync([[NEW_VARIABLE2]] + '222.csv', result);Отдельная благодарность @fox за участие и консультации
-
Сработал вариант @avtopars при сохранении.
Но потом когда BAS открывает заново этот файл он уже нечитаем.
Как его при открытии сконвертировать обратно в UTF-8
Пробовал заменить этот же вариант так:var fs = require('fs'); var encoding = require('encoding'); //Читаем файл в utf-8 кодировке(BAS всегда сохраняет в utf-8) var text = fs.readFileSync([[NEW_VARIABLE]] + '111.csv', 'WINDOWS-1251'); //Конвертим var result = encoding.convert(text, 'UTF-8', 'WINDOWS-1251'); //Пишем в файл fs.writeFileSync([[NEW_VARIABLE2]] + '222.csv', result);Но ничего не получилось, кто-то знает решение? Спасибо.
-
const fs = require('fs'); const encoding = require('encoding'); let text = fs.readFileSync('./1251.txt'); text = encoding.convert(text, 'UTF-8', 'WINDOWS-1251'); fs.writeFileSync('./utf8.txt', text);