0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 2
1

Считывать 2 файла построчно и присваивать переменные

03.04.2016, 14:45. Показов 2302. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно циклами считывать данные из двух файлов и придавать им переменные, либо считывать с одного файла и тексту который идет до ; придавать одну переменную а все что после ; другую.
Помогите пожалуйста в языках никогда небыл силен(

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<ruby>
loop do
#Thread.new do
File.open("/root/1.txt","r") do |file|
file.each_line do |abc|
File.open("/root/2.txt","r") do |file|
file.each_line do |cba|
#{abc}
#{cba}
end
end
#end
break
end
</ruby>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2016, 14:45
Ответы с готовыми решениями:

Считать из файла числовые переменные построчно
Приветствую. Для начала - общее описание того, что мне нужно. Есть файл. В нем построчно записаны...

Открываются 2 текстовых файла, сложить построчно числа из 1 и 2 файла, сумму вывести в третий файл построчно
Товарищи, помогите с кодом пожалуйста.=( 1. Создать текстовый файл и сохранить в нём текст из...

Как из RTB считывать и вводить текст построчно
Пользователь должен создать список вопросов. Планирую использовать для этой цели ричТекстБокс....

Как считывать построчно элементы в таблице word и записывать в ячейки Excel
Добрый день, вопрос такой существует Word файл с таблицей состоящей из 4 столбцов, необходимо...

5
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
04.04.2016, 16:07 2

Не по теме:

Цитата Сообщение от Ant0xa Посмотреть сообщение
Нужно циклами считывать данные из двух файлов и придавать им переменные
Я так и не смог разгадать эту загадку :(



Цитата Сообщение от Ant0xa Посмотреть сообщение
либо считывать с одного файла и тексту который идет до ; придавать одну переменную а все что после ; другую
Ruby
1
2
3
4
5
6
7
8
#!/usr/bin/env ruby
File.open 'text_sample.txt' do |f|
  f.each_line do |line|
    a, b = line.split ';'
    puts "#{f.lineno}:1:#{a}"
    puts "#{f.lineno}:2:#{b}"
  end
end
text_sample.txt

Код
Lorem ipsum dolor sit amet;consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua;Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi;ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit;in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint;occaecat cupidatat non proident, sunt in
culpa qui officia deserunt;mollit anim id est laborum.
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.04.2016, 18:20 3
Ruby
1
2
3
4
5
6
7
8
File.open('/root/login-as-root-is-bad') do |f1|
  File.open('/root/i-mean-it') do |f2|
    f1.zip(f2) do |(l1, l2)|
      print 'a line from the first file: ', l1
      print 'a line from the second file: ', l2
    end
  end
end
1
0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 6
30.06.2016, 02:19 4
Те примеры не заработали как нужно, либо я неправильно подставил все, обьясню по лучше.
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
<ruby>
loop do
Thread.new do
File.open("/root/xy.txt","r") do |file|
file.each_line do |x|
run_single("set name1 #{x}")
run_single("set name2 #{y}")
end
end
break
end
</ruby>
Вот мне сюда нужно вставить чтоб 2 переменные считывались и подставлялись.
Либо с одного файла с разделителем;
x;y
x;y
либо чтоб с таким списком работало либо 2 разных файла открыть
и оттуда по отдельности считать 1ая переменная 1'вый файл
2'ая переменная 2 файл
Главное чтоб считывалось и подставлялось.
Помогите пожалуйста
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
30.06.2016, 06:29 5
Цитата Сообщение от Ant0xa1992 Посмотреть сообщение
чтоб 2 переменные считывались и подставлялись.
Какие переменные? Там в файлах что — названия переменных? значения (строка, число, etc.)? Подставлялись куда?

Приведённый тобой код не слишком помогает.
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
30.06.2016, 09:16 6
Цитата Сообщение от Ant0xa1992 Посмотреть сообщение
либо чтоб с таким списком работало либо 2 разных файла открыть
Остановитесь на чем-нибудь одном.
Сначала посмотрим на ваш код:
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# stub method
def run_single(str)
  sleep 0.1
  puts str
end
 
# бесконечный цикл, ок...
loop do
  # новый поток
  Thread.new do
    File.open("data.txt","r") do |file|
      file.each_line do |line|
        # разбиваем строку на две переменные
        x, y = line.split(';')
        # здесь непонятно
        # если операция занимает некоторое время
        # то сначала обработаются всеми потоками переменные "х"
        # и потом все переменные "у"
        run_single("set name1 #{x}")
        run_single("set name2 #{y}")
      end
    end
    break # эм... wtf?
  end
end # не хватало
Пусть будет 1 файл с переменными разделенными точкой с запятой.
Сгенерим данные, надо ведь с чем-то поиграться:
Ruby
1
2
3
4
5
File.open('data.txt', 'w') do |f|
  100.times do |n|
    f.puts "x=#{n};y=#{n}"
  end
end
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# stub method
def run_single(x, y)
  sleep 0.5
  print "set name1 #{x}"
  puts " set name2 #{y}"
end
 
File.open('data.txt', 'r') do |file|
  file.each_line do |line|
    # метод принимает две переменные, String#split возвращает массив
    # * - "распакует массив"
    run_single(*line.split(';'))
  end
end
 
puts 'Complete'
Занимает некоторое время...
Что там у нас с "многопоточностью"?
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# stub method
@mutex = Mutex.new
def run_single(x, y)
  sleep 0.5
  # например не атомарная операция, я не хочу чтобы в поток вывода мог вмешаться
  # кто-нибудь еще
  @mutex.synchronize do
    print "set name1 #{x}"
    puts " set name2 #{y}"
  end
end
 
# по 10 строк
queue = SizedQueue.new 10
# тут будут хранится потоки
threads = []
 
File.open('data.txt', 'r') do |file|
  file.each_line do |line|
    # строку из файла в очередь на обработку
    queue.enq line
    # пока очередь не пуста и есть данные
    while !queue.empty? && data = queue.deq
      # создается новый поток
      threads << Thread.new do
        # "полезная нагрузка"
        run_single(*data.split(';'))
      end
    end
  end
end
# ожидается завершение всех созданных потоков
threads.each(&:join) # закомментируйте, посмотрите результат
puts 'Complete'
Ruby и многопоточность... Если у вас много данных, стоит подумать о реализации некоего Thread Pool, сюда можно еще глянуть.
0
30.06.2016, 09:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2016, 09:16
Помогаю со студенческими работами здесь

Считывание из файла построчно и запись в файл построчно getline ()
# include &lt;iostream&gt; # include &lt;vector&gt; # include &lt;fstream&gt; # include &lt;string&gt; using...

Как считывать переменные из текст бокса?
Есть программа которая рассчитывает определенное уравнение, и в следствии расчетов строит графики....

Как присваивать значения переменным из xml файла?
Есть xml файл, необходимо, чтобы при вводе переменной равной id кабинета, присваивалось значение из...

Как в потоке парсить значение из файла и присваивать оператору?
Приветствую!! Подскажите пожалуйста, как в потоке парсить значение из файла и присваивать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru