Поиск:

Ответ в темуСоздание новой темы Создание опроса
> По моему что-то с типами данных... 
:(
    Опции темы
Angel07
Дата 3.4.2010, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.4.2010

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



Привет и заранее спасибо!  smile

Вобщем нужно перегнать текст из такого:

00:00:00,000 --> 00:00:01,000
Привет


в такой:

<sentence time="00:00:00,000 --> 00:00:01,000" russian="Привет" translation="{t}Привет{/t}"></sentence>

Делаю примерно так:

Код

$stdout = File.open('sub.txt', 'w')
str = IO.readlines("in.txt")


for i in 0..str.size do
  a = str[i].scan(/(\S{12}+\s-->\s+\S{12})/)
  b = str[i].scan(/(^\D{1,})/)
  puts '<sentence time="' + a + '" russian="' + b + '" translation="{t}' + b + '{/t}"></sentence>'
end


И постоянно вылезает ошибка:

Код

# ~> -:8:in `+': can't convert Array into String (TypeError)
# ~>    from -:8
# ~>    from -:5:in `each'
# ~>    from -:5


Понимаю, что вопрос глупый, но как-то дело не идет smile

Это сообщение отредактировал(а) Angel07 - 3.4.2010, 00:48
PM MAIL   Вверх
рельсовик
Дата 3.4.2010, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 3.4.2010

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



Код

$stdout = File.open('sub.txt', 'w')
str = IO.readlines("in.txt")
i=0
while i < str.size do
  a = str[i].scan(/(\S{12}+\s-->\s+\S{12})/)[0][0]
  b = str[i+1].scan(/(^\D{1,})/)[0][0]
  puts '<sentence time="' + a + '" russian="' + b + '" translation="{t}' + b + '{/t}"></sentence>'
  i+=2
end


Почему a и б возвращаются в двойном массиве а не строке - не вникал, просто увидел и поправил результат. А вот i надо каждый цикл на два увеличивать, используя i для первой строки и i+1 для второй, они ж на разных строках в исходнике-то. =) Переделал цикл в while для простоты - вероятно можно было и оставить for, опять-же не вникал =)

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

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

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


 




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


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

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