[РЕШЕНО]Импорт текста в Calc

Автор Андрей2014, 10 апреля 2015, 14:15

0 Пользователи и 1 гость просматривают эту тему.

Андрей2014

Всем Привет!
Есть текстовый файл, содержащий

1 3 4 5 6
1 2
1 2 3
1 2 3 4 5 6 7

Между символами (цифрами) табуляции (не пробелы).
Нужно получить:

Т.е. чтобы заполнение ячеек выполнялось справа налево.
Можно ли это сделать средствами самого Cacl? или прийдётся сначала колдовать над текстовым файлом?



rami

Цитата: Андрей2014 от 10 апреля 2015, 12:15Можно ли это сделать средствами самого Cacl? или прийдётся сначала колдовать над текстовым файлом?
Для колдовства понадобятся бубен и огненная вода 

Вы хотите поломать столбцы, например, в первом столбце четыре единицы, а вам нужно чтобы стало три раза "пусто" и "1". Непонятно какой в этом смысл ???
В принципе это можно. Выложите образец файла.

Андрей2014

Цитата: rami от 10 апреля 2015, 14:54Выложите образец файла.
Образец файла выложен - текстовый файл с содержимым из код-тага (в первом сообщении). Разница, разве что, в количестве строк (их десятки тысяч, ну и цифры а в разных последовательностях).
Первая мысль - добавлять необходимое число табуляций в начало строк, таким образом, чтобы сделать равным количество символов во всех строках. Но это, похоже, уже тематика другого форума.

Yakov

Цитата: Андрей2014 от 10 апреля 2015, 13:07Первая мысль - добавлять необходимое число табуляций в начало строк, таким образом, чтобы сделать равным количество символов во всех строках.
Для этого очень хорошо подходит awk.
Конечно, это всё можно сделать и на LO Basic, но быстродействие получается очень низкое.

celler

Такую задачу можно решить и формулами. Правда, при очень большом количестве строк можно упереться в возможности 32-битной версии LO. Я проверил на 100 тысячах строк при 7-ми столбцах - компьютер думал минут десять, но результат выдал.

kompilainenn

Цитата: celler от 10 апреля 2015, 15:52Правда, при очень большом количестве строк можно упереться в возможности 32-битной версии LO.
дык есть же уже 64-битные сборки, они вполне себе стабильные=)
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Андрей2014

Не, выровнять текстовый файл - не проблема. Команда:

$ while read var; do echo $var | awk '{printf "%50s\n", $0}'; done <file.txt > sorted.txt

выравнивает текст по правому краю секунд за 30. В данном случае добавляются пробелы, которые потом можно заменить табуляцией. Но теперь другая проблема - при импорте в Calc, выравнивание смещается... Надо, чтоб добавленные пробелы чередовались через один, чтоб последний столбец в Calc был одинаков для всех строк. Будем колдовать дальше...

Андрей2014

Решено.
Кому интересно, последовательность команд:

$ sed -e "s/  /q /g" 20.txt > 21.txt
$ sed -e "s/ /\t/g" 21.txt > 22.txt
$ sed -e "s/q/ /g" 22.txt > 23.txt

Короче, комбинируем с заменами, в результате получаем файл, где в начале строк пробелы чередуются с табуляциями (между цифрами тоже табуляции). Calc при импорте режет текст по табуляциям, столбцы совпадают.