planetz Ответов: 1

Чтение строк из текстового файла между разными строками с одинаковыми словами с помощью VBA


Всем Привет,

У меня есть файл .txt со следующими данными:

Student 1
name abc
age 12
section 123

Student 2
section 456
name xyz
age 13

Student 3
name dfg
age 12
section 456


Моим выходным файлом будет файл. xlsx

student  name  age  section
student1 abc    12   123
student2 xyz    13   456
student3 dfg    12   456


Я обрабатываю этот файл так, чтобы сведения о каждом студенте появлялись в каждой строке excel.
Как я могу поставить флаг или что-то еще, чтобы отличить ученика 1 от ученика 2? Данные между учениками постоянны, но последовательность меняется. Это не проблема. Я не могу найти способ отметить флаги между отдельными учениками!!
Нужна помощь!!

Спасибо...!! :)

Что я уже пробовал:

Я не могу придумать способ изменить флаг, даже если использую его.

Вот мой код:
while not EOF()
   if instr(DataLine,"Student") > 0 then
      student_val=DataLine
      flag=true
   end if

   if flag=true then
      if instr(DataLine,"name") > 0 then
        name_val=rplace(DataLine,"name","")
      end if
   end if

wend


это дает значения для первого ученика. Но когда я могу сбросить флаг, чтобы узнать, что это student2 в текстовом файле, и начать с новой строки в excel?

Patrice T

И у вас есть код ?
Что ты наделал ?
какой результат вы хотите ?

MayurDighe

Используйте опцию "улучшить вопрос", чтобы правильно обновить свой вопрос. Если вы делаете код для того же самого и застряли где-то, то покажите, где у вас есть проблемы? Что вы для этого делаете? Что вы хотите от нас?

Patrice T

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

planetz

я искал помощи относительно логики...проблема решена...я обновлю свой правильный запущенный код...

1 Ответов

Рейтинг:
5

CPallini

Ну, а текущий номер студента должен быть свойством вашей парсинговой государственной машины. Каждый раз, когда парсер встречает 'Студент < N>- линия, она должна изменить такое свойство. При разборе всех остальных строк это свойство используется для размещения собранных данных в соответствующую строку excel.


planetz

Пожалуйста, объясните с помощью примера кода. Мой код здесь относится к первому ученику. Но как я могу перейти к следующему?

planetz

Эй...спасибо за подсказку...!!

CPallini

Добро пожаловать.