![]() |
Модераторы: mihanik |
![]() ![]() ![]() |
|
Валк |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
Есть текстовый файл, нужно прочитать первую строку, сделать с ней кое-какие операции, затем прочитать следующую.
Какой командой можно прочитать, допустим, строку с определённым номером? Я бы завёл тогда переменную, которой присвоил бы значение равное тексту этой строки и уже делал с ней нужные мне операции. Это сообщение отредактировал(а) Валк - 4.8.2008, 20:38 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Первый вопрос - что мешает прочитать весь файл, отпарсить в массив (элемент = строка) и работать с ним?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Валк |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
Боюсь, что массив будет очень большой + я не знаю как и это делать.
Пока дошёл до такого варианта:
Издевательства над переменной v_LineStats и есть нужные мне операции. Пугает то, что пришлось присоединить библиотеку работы с объектами и не уверен, что решение в общем правильное. Это сообщение отредактировал(а) Валк - 4.8.2008, 22:25 |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 1 Всего: 130 |
Не понял, а зачем так сложно? Вроде же есть команды вроде
? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Валк |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
Данкинг
В твоём коде прочитается только строка номер один? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
А почему именно ReadLine? есть же ReadFile + Split... или речь о файле в десятки-сотни-более мегабайт?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Валк |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
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="?? |
||||
|
|||||
Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 1 Всего: 130 |
Я на VB давным-давно уже ничего не писал. ![]()
(суть ясна, думаю ![]() -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
ТО, что при печати выглядит как число, не обязано быть числом вполне может оказаться строкой. Чтобы получить гарантированно число, следует использовать явно процедуру приведения типов. Скажем TextBoxHands.Value - явно строка, Val(TextBoxHands.Value) - гарантированно число, но фиг знает какого типа, а вот CDbl(TextBoxHands.Value) - гарантированно число с плавающей точкой двойной точности. Добавлено через 1 минуту и 36 секунд Напечатать, вырезать ножницами и взять. Скажем, в левую руку... НЕТУ в программировании операции взять! Не определено. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Валк |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
Akina
Val(TextBoxHands.Value) - гарантированно число Спасибо за подсказку. Напечатать, вырезать ножницами и взять. Скажем, в левую руку... НЕТУ в программировании операции взять! Не определено. Ну что ты, право слово. Я и так понимаю, что я бестолковый. В общем, как я сделал. Читал каждую строку и если её первые 9 символов были равны "NoteText=", то при помощи функций обработки строк Left, Right, Mid, Len вырезал нужные мне кусочки текста и вставлял куда надо. Всем большое спасибо, вопрос кажется решил. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование, связанное с MS Office" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |