| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Как прочитать из текстового файла нужную строку? |
| Автор: Валк 4.8.2008, 20:28 |
| Есть текстовый файл, нужно прочитать первую строку, сделать с ней кое-какие операции, затем прочитать следующую. Какой командой можно прочитать, допустим, строку с определённым номером? Я бы завёл тогда переменную, которой присвоил бы значение равное тексту этой строки и уже делал с ней нужные мне операции. |
| Автор: Akina 4.8.2008, 22:06 |
| Первый вопрос - что мешает прочитать весь файл, отпарсить в массив (элемент = строка) и работать с ним? |
| Автор: Валк 4.8.2008, 22:23 | ||
| Боюсь, что массив будет очень большой + я не знаю как и это делать. Пока дошёл до такого варианта:
Издевательства над переменной v_LineStats и есть нужные мне операции. Пугает то, что пришлось присоединить библиотеку работы с объектами и не уверен, что решение в общем правильное. |
| Автор: Данкинг 4.8.2008, 22:27 | ||
Не понял, а зачем так сложно? Вроде же есть команды вроде
? |
| Автор: Валк 4.8.2008, 22:51 |
| Данкинг В твоём коде прочитается только строка номер один? |
| Автор: Akina 4.8.2008, 23:05 |
| А почему именно ReadLine? есть же ReadFile + Split... или речь о файле в десятки-сотни-более мегабайт? |
| Автор: Валк 4.8.2008, 23:30 | ||||
| Akina Да нет, файлы не такие огромные, думаю не более десяти мегабайт будут, просто что первое в книжке прочитал, то и пишу. Думаю так и оставлю, благо у меня вроде то, что хотел получилось. Кроме двух моментов (только не смейтесь). 1. Переменная v_LineStats у меня Variant, я её усекаю до определённого момента при котором она у меня получается вроде как число. Пробую задать условие:
где TextBoxHands.Value тоже вроде как число, а условие никак не выполняется. Точнее игнорируется знак >. К примеру, TextBoxHands.Value у меня почти всегда равно 100, LineStats бывает разным, но хоть оно больше сотни, хоть меньше все команды после
выполняются не взирая. Что делать? 2. Есть у меня второй файл, в котором есть данные. Если из первого файла данные можно читать последовательно, то во втором они разбросаны беспорядочно. Можно как-то в файле данные искать? Например, Вид первого файла: "TC113","85","214.36","43.53","12.94","33.33" "Lerry1982","1,045","16.98","14.83","7.46","63.41" "sagaraga","2,299","7.64","16.79","9.53","47.78" "didudidu","908","18.92","11.89","7.38","56.00" Вид второго файла: PlayerName=TC113 NoteText="Красное, зелёное и чёрное" PlayerName=Lerry1982 NoteText="Синий, голубой" PlayerName=sagaraga NoteText="Полностью бесцветный" PlayerName=didudidu NoteText= Так вот, как из второго файла взять только то, что после NoteText="?? |
| Автор: Данкинг 4.8.2008, 23:32 | ||||
Я на VB давным-давно уже ничего не писал.
(суть ясна, думаю |
| Автор: Валк 6.8.2008, 00:02 |
| Akina Val(TextBoxHands.Value) - гарантированно число Спасибо за подсказку. Напечатать, вырезать ножницами и взять. Скажем, в левую руку... НЕТУ в программировании операции взять! Не определено. Ну что ты, право слово. Я и так понимаю, что я бестолковый. В общем, как я сделал. Читал каждую строку и если её первые 9 символов были равны "NoteText=", то при помощи функций обработки строк Left, Right, Mid, Len вырезал нужные мне кусочки текста и вставлял куда надо. Всем большое спасибо, вопрос кажется решил. |