Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

25 Май 2019, 20:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: [РЕШЕНО]Импорт текста в Calc  (Прочитано 3762 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Андрей2014
Участник
**
Offline Offline

Сообщений: 38


« Стартовое сообщение: 10 Апрель 2015, 14:15 »

Всем Привет!
Есть текстовый файл, содержащий
Код:
1 3 4 5 6
1 2
1 2 3
1 2 3 4 5 6 7
Между символами (цифрами) табуляции (не пробелы).
Нужно получить:

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


« Последнее редактирование: 10 Апрель 2015, 19:20 от Андрей2014 » Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 713


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 10 Апрель 2015, 14:54 »

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

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

Андрей2014
Участник
**
Offline Offline

Сообщений: 38


« Ответ #2: 10 Апрель 2015, 15:07 »

Выложите образец файла.
Образец файла выложен - текстовый файл с содержимым из код-тага (в первом сообщении). Разница, разве что, в количестве строк (их десятки тысяч, ну и цифры а в разных последовательностях).
Первая мысль - добавлять необходимое число табуляций в начало строк, таким образом, чтобы сделать равным количество символов во всех строках. Но это, похоже, уже тематика другого форума.
Записан
Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #3: 10 Апрель 2015, 15:46 »

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

celler
Форумчанин
***
Offline Offline

Сообщений: 191


« Ответ #4: 10 Апрель 2015, 17:52 »

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

* reschen.ods (9.08 Кб - загружено 7 раз.)
Записан
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 2 662



« Ответ #5: 10 Апрель 2015, 17:58 »

Правда, при очень большом количестве строк можно упереться в возможности 32-битной версии LO.
дык есть же уже 64-битные сборки, они вполне себе стабильные=)
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
Андрей2014
Участник
**
Offline Offline

Сообщений: 38


« Ответ #6: 10 Апрель 2015, 18:00 »

Не, выровнять текстовый файл - не проблема. Команда:
Код:
$ while read var; do echo $var | awk '{printf "%50s\n", $0}'; done <file.txt > sorted.txt
выравнивает текст по правому краю секунд за 30. В данном случае добавляются пробелы, которые потом можно заменить табуляцией. Но теперь другая проблема - при импорте в Calc, выравнивание смещается... Надо, чтоб добавленные пробелы чередовались через один, чтоб последний столбец в Calc был одинаков для всех строк. Будем колдовать дальше...
Записан
Андрей2014
Участник
**
Offline Offline

Сообщений: 38


« Ответ #7: 10 Апрель 2015, 19:19 »

Решено.
Кому интересно, последовательность команд:
Код:
$ 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 при импорте режет текст по табуляциям, столбцы совпадают.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!