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

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

18 Апрель 2021, 17:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Импорт текстового файла -- ведущие пробелы в первой колонке "ломают строй"  (Прочитано 6992 раз)
0 Пользователей и 1 Гость смотрят эту тему.
spider
Участник
**
Offline Offline

Сообщений: 48


« Стартовое сообщение: 6 Ноябрь 2014, 11:44 »

Здравствуйте!

Пытаюсь импортировать файл с числами в столбцах фиксированной ширины, разделенных пробелами. Все числа, как это водится, выровнены по десятичной точке. В первой колонке либо числа, опять же выровненные по точке, либо слова, выровненные вправо. ПОэтому некоторые строки имеют пробелы в начале. Выглядят файлы как то так:

если в первой колонке числа
  0.0 1.1
123.0 2.2
 45.0 3.3
678.0 4/4

если в первой колонке слова

 BCD   0.0 1.1
ABCВ 123.0 2.2
 BCD  45.0 3.3
ABCD 678.0 4/4

В обоих случаях поля в строках, начинающихся с пробелов (1,3), сдвигаются на одно поле вправо.

Прилагаю кусок оригинального файла

* log-04.gz (0.39 Кб - загружено 15 раз.)
Записан
CyberDaemon
Форумчанин
***
Offline Offline

Сообщений: 156


« Ответ #1: 6 Ноябрь 2014, 12:48 »

Здравствуйте!

Пытаюсь импортировать файл с числами в столбцах фиксированной ширины, разделенных пробелами. Все числа, как это водится, выровнены по десятичной точке. В первой колонке либо числа, опять же выровненные по точке, либо слова, выровненные вправо. ПОэтому некоторые строки имеют пробелы в начале. Выглядят файлы как то так:

если в первой колонке числа
  0.0 1.1
123.0 2.2
 45.0 3.3
678.0 4/4

если в первой колонке слова

 BCD   0.0 1.1
ABCВ 123.0 2.2
 BCD  45.0 3.3
ABCD 678.0 4/4

В обоих случаях поля в строках, начинающихся с пробелов (1,3), сдвигаются на одно поле вправо.

Прилагаю кусок оригинального файла

Куда импортировать?
Здравствуйте!

Пытаюсь импортировать файл с числами в столбцах фиксированной ширины, разделенных пробелами. Все числа, как это водится, выровнены по десятичной точке. В первой колонке либо числа, опять же выровненные по точке, либо слова, выровненные вправо. ПОэтому некоторые строки имеют пробелы в начале. Выглядят файлы как то так:

если в первой колонке числа
  0.0 1.1
123.0 2.2
 45.0 3.3
678.0 4/4

если в первой колонке слова

 BCD   0.0 1.1
ABCВ 123.0 2.2
 BCD  45.0 3.3
ABCD 678.0 4/4

В обоих случаях поля в строках, начинающихся с пробелов (1,3), сдвигаются на одно поле вправо.

Прилагаю кусок оригинального файла

Натравить на текст awk, или sed предварительно. Убрать лидирующие пробелы.
Может макрос какой состряпать, что бы при открытии заменял "^ " на "^".
Записан
spider
Участник
**
Offline Offline

Сообщений: 48


« Ответ #2: 6 Ноябрь 2014, 14:29 »

Куда импортировать?
В лист Calc.
УУПС... ошибся топиком.
Цитата:
Натравить на текст awk, или sed предварительно. Убрать лидирующие пробелы.
Может макрос какой состряпать, что бы при открытии заменял "^ " на "^".
Макрос, который бы при назначении пробельного материала (пробел, табуляция) в качестве разделителя .csv в диалоге выбора галку предложил поставить, типа: "[ ] - игнорировать пробелы в начале строки", было бы неплохо. Но, увы, я такой не напишу -- бейсика не знаю.
Придется sed.
Записан
rami
Гуру
*******
Offline Offline

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


iMac, LibreOffice и Apache OpenOffice


« Ответ #3: 6 Ноябрь 2014, 15:08 »

У вас все файлы без расширения? Как вы хотите открывать файлы? Вот такой результат подойдёт?


* Снимок выделенного.png (80.56 Кб, 1095x241 - просмотрено 31 раз.)
Записан

spider
Участник
**
Offline Offline

Сообщений: 48


« Ответ #4: 6 Ноябрь 2014, 21:26 »

У вас все файлы без расширения?
Как вы хотите открывать файлы?
Вот такой результат подойдёт?
В линуксовом офисе все открывается -- ему точки в имени по барабану. Можно файлу дать имя из одних пробелов и все будет пучком.
Я их открываю через меню "Вставить-Лист_из_файла". Несколько файлов в один документ с несколькими листами.
Результат такой и надо. Я сейчас для этого седом пользуюсь "sed -i s/^\ *// file".



Записан
rami
Гуру
*******
Offline Offline

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


iMac, LibreOffice и Apache OpenOffice


« Ответ #5: 7 Ноябрь 2014, 01:09 »

В линуксовом офисе все открывается -- ему точки в имени по барабану. Можно файлу дать имя из одних пробелов и все будет пучком.
Это не тот ответ, что я ожидал получить, я хотел узнать, вы получаете файлы с типовым именем log-<порядковый номер> без расширения?

Я сейчас для этого седом пользуюсь "sed -i s/^\ *// file".
Проблема уже решена?
Записан

spider
Участник
**
Offline Offline

Сообщений: 48


« Ответ #6: 10 Ноябрь 2014, 12:03 »

Цитата: rami link=topic=4583.msg28215#msg28215 date=14153117
я хотел узнать, вы получаете файлы с типовым именем [b
log-[/b]<порядковый номер> без расширения?
fopen() + fprintf()
Цитата:
Проблема уже решена?
Руками через sed.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #7: 10 Ноябрь 2014, 12:18 »

Цитата:
Проблема уже решена?
Руками через sed.
И это печально... Не обращал внимания на переключатель Фиксированная ширина/С разделителями?
По себе знаю, когда постоянно пользуешься "С разделителями", как-то забываешь о других возможностях...
Цитата:
Параметры разделения
Указывает, используются ли в качестве разделителей данных разделители или фиксированная ширина строк.
Фиксированная ширина
Разделяет данные с фиксированной шириной (одинаковым числом символов) на столбцы. Щелкните линейку в окне предварительного просмотра, чтобы задать ширину.
С разделителями
Выберите разделитель для данных. (и далее по тексту)


* Колонки с табуляторами.png (2.76 Кб, 381x88 - просмотрено 26 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
spider
Участник
**
Offline Offline

Сообщений: 48


« Ответ #8: 11 Ноябрь 2014, 11:01 »

Не обращал внимания на переключатель Фиксированная ширина/С разделителями?
По себе знаю, когда постоянно пользуешься "С разделителями", как-то забываешь о других возможностях...
Это я самое первое попробовал. Не работает, если "фиксированная ширина" устроена табуляциями. Только если пробелами.
Табуляция выглядит, как стрелочка и принимается как один символ фиксированной ширины, поэтому колонки сбиваются.


* fig-04.png (14.93 Кб, 369x155 - просмотрено 26 раз.)
Записан
rami
Гуру
*******
Offline Offline

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


iMac, LibreOffice и Apache OpenOffice


« Ответ #9: 11 Ноябрь 2014, 11:38 »

Не работает, если "фиксированная ширина" устроена табуляциями. Только если пробелами.
Табуляция выглядит, как стрелочка и принимается как один символ фиксированной ширины, поэтому колонки сбиваются.
После вашего "Руками через sed." ещё хорошо выглядит.
Импорт текстового файла -- ведущие пробелы в первой колонке "ломают строй"
Это не пробелы что-то там ломают, а вы ломаете. Выложеный вами файл log-04 прекрасно открывается как предлагает JohnSUN.
Записан

JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #10: 11 Ноябрь 2014, 12:31 »

Да-да, я ведь тоже от образца в log-04 отталкивался... Откуда табуляторы-то взялись?
Если они - tab'ы - всегда будут, то и разговаривать не о чем: этот формат офис всасывает вообще без вопросов. Главное, не забыть "птичку" на нужном разделителе поставить


* Вставка листа.gif (190.84 Кб, 566x451 - просмотрено 25 раз.)
« Последнее редактирование: 11 Ноябрь 2014, 12:34 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

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


iMac, LibreOffice и Apache OpenOffice


« Ответ #11: 11 Ноябрь 2014, 12:47 »

JohnSUN, у меня файл log-04 без расширения CSV по умолчанию открывается в текстовом редакторе, а если указать LibreOffice, то в Writer. С расширением CSV открывается в Calc. Макрос открывает правильно и без расширения.
Откуда табуляторы-то взялись?
"Руками через zad." Извиняюсь за мой французский.
« Последнее редактирование: 11 Ноябрь 2014, 12:49 от rami » Записан

spider
Участник
**
Offline Offline

Сообщений: 48


« Ответ #12: 13 Ноябрь 2014, 16:02 »

Походу, что-то вас разозлило.
Еще раз -- если в первой колонке число или текст выровнены вправо, файл не импортируется правильно, чем там столбцы не размечай -- чеками или фиксированным форматом.
1) фиксированный формат не учитывает, что табулятор имеет переменную ширину;
2) нет возможности пропустить пробелы перед первым непробельным символом в строке.
Чтобы решить проблему (2) я прогоняю файлы через сед, чтобы они импортировались правильно. Если у кого-нибудь есть лучшее решение, или автоматизация, я с удовольствием приму.
Записан
spider
Участник
**
Offline Offline

Сообщений: 48


« Ответ #13: 13 Ноябрь 2014, 16:18 »

Да-да, я ведь тоже от образца в log-04 отталкивался... Откуда табуляторы-то взялись?
Если они - tab'ы - всегда будут, то и разговаривать не о чем: этот формат офис всасывает вообще без вопросов. Главное, не забыть "птичку" на нужном разделителе поставить
Табуляторы и пробелы -- это совершенно один и тот же материал с точки зрения вывода, в первом случае нерастяжимый, во втором растяжимый. В зависимости от того, нужна ли растяжимость при выводе или нет, используется либо тот, либо другой.
Насчет "всасывает tab'ы без вопросов", Вы погорячились. Не "всавывает" выровненное вправо в первой колонке даже с вопросами. Что касается текста в первой колонке, то хотя это и коряво, его и по левой границе можно упереть, но как быть с числами? Числа всегда выравниваются по десятичной точке.




Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #14: 13 Ноябрь 2014, 16:51 »

Походу, что-то вас разозлило.
Честно? Да... Даёшь один образец данных, сам экспериментируешь с другим, а мы полными кретинами выглядим - элементарную операцию сделать не можем (баг повторить)
Табуляторы и пробелы -- это совершенно один и тот же материал с точки зрения вывода
Э-э-э... пардоньте... с чьей, говорите, точки зрения?
Насчет "всасывает tab'ы без вопросов", Вы погорячились.
И не "выкай" на меня, не ссорились...  Подмигивающий
Не "всасывает" выровненное вправо в первой колонке даже с вопросами. Что касается текста в первой колонке, то хотя это и коряво, его и по левой границе можно упереть, но как быть с числами? Числа всегда выравниваются по десятичной точке.
Повтори образцы данных... С пробельным выравниванием и с табуляторным.
Не может быть, чтобы на такую задачу у тебя ушло столько времени! Ты же уже столько времени с этими CSV возишься, уже давно руку набил... Вдохновения нет, что ли?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

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