Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод строк и массивов 
V
    Опции темы
Akeem
Дата 31.7.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

Репутация: нет
Всего: 3



При работе с Руби. У меня возник такой вопрос. Можно ли как то выводить большие (довольно массивы). Так чтобы не терялась информация. Если да то как? 


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW ICQ   Вверх
Pete
Дата 31.7.2006, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 5.1.2006
Где: Москва

Репутация: 2
Всего: 12



А почему она будет теряться?
Вообще, для вывода массивов есть метод p:
Код

irb(main):001:0> a = [ 1, 'a', "abc", -3.57 ]
=> [1, "a", "abc", -3.57]
irb(main):002:0> p a
[1, "a", "abc", -3.57]
=> nil
irb(main):003:0>

Если они настолько большие, что не помещаются в терминал, то можно писать в файл стандартными перенаправлениями потока вывода:
Код

ruby proga.rb > qq.txt

либо
Код

ruby proga.rb >> qq.txt
 


--------------------
Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу)
Не откладывай на завтра то, что можешь сделать сегодня. (Пословица)
А теперь выпишем точное значение числа пи... (Препод)
Жахни, Пендальф! © Гоблин
PM   Вверх
Akeem
Дата 1.8.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

Репутация: нет
Всего: 3



Не в файл не пойдет. Надо именно в терминал. и так чтобы можно было читать удобно массив.

Это сообщение отредактировал(а) Akeem - 1.8.2006, 09:29


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW ICQ   Вверх
MastEdm
Дата 1.8.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Master
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 3.12.2005
Где: Москва, МГИУ

Репутация: нет
Всего: 2



Ну уж если вас не устраивает предложение Pete, почему бы не написать свой метод?!

Это сообщение отредактировал(а) MastEdm - 1.8.2006, 11:48
PM MAIL   Вверх
Vanoha
Дата 1.8.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 30.6.2006
Где: Киев

Репутация: 1
Всего: 1



Цитата(Akeem @ 31.7.2006,  21:18)
При работе с Руби. У меня возник такой вопрос. Можно ли как то выводить большие (довольно массивы). Так чтобы не терялась информация. Если да то как?

Например, так (построчно):
Код

array.each{|elem|   p elem}


или для очень большого массива постранично (построчно):
Код

lpp=20 # lines per page
array.each_with_index{|elem, i|
  p elem
  ( puts "== Push Enter for more =="; gets )  if (i%lpp)==(lpp-1)
}


Можешь определить это как метод класса Array (или как тебе удобно) и пользуй.

Если же элементы массива очень большие и не помещаются в строку (например, очень большие целые или строки), то можно попробовать так (идея, оптимизируй сам):
Код

lpp=20 # lines per page
spl=72 # symbols per line
lc=0   # lines counter

array.each{|elem|
  elem=elem.to_s
  (lc=0; puts '== Puts Enter for more =='; gets) if (elem.size/spl+lc+1)>lpp 

  puts elem[0,spl]; lc+=1
  while elem=elem[spl..-1]  do
    puts "==>"+elem[0,spl];     lc+=1  end
}


PM MAIL   Вверх
Akeem
Дата 1.8.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

Репутация: нет
Всего: 3



MastEdm
Потому что не могу придумать как.


Vanoha
Спасибо за совет. Возьмму на вооружение.


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW ICQ   Вверх
Cr@$h
Дата 24.8.2006, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: нет
Всего: 41




M
Cr@$h
Vanoha ++ за помощь новичку.

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1308 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.