Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка текстового файла, С чего начать 
:(
    Опции темы
baltaero
  Дата 30.8.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте. Посоветуйте с чего начать. Есть файл .txt такого вида:

c n0 N1 x650.539185 y908.076599 X1042.858765 Y885.426575
# Control Point No 36: 1.00000
c n0 N1 x640.701050 y997.983887 X1032.683716 Y973.944641
# Control Point No 38: 1.00000
c n0 N2 x25.550047 y769.933655 X824.773315 Y741.491150
# Control Point No 40: 1.00000
c n0 N2 x68.985519 y909.538574 X873.693054 Y877.454102
# Control Point No 78: 1.00000
c n1 N2 x25.682077 y677.033936 X431.188599 Y678.179810
# Control Point No 80: 1.00000
c n1 N2 x53.007000 y256.720093 X447.000824 Y257.937439
# Control Point No 82: 1.00000
c n1 N2 x49.318905 y319.883514 X447.050781 Y320.188721
# Control Point No 84: 1.00000

Мне нужно вытащить отсюда 1-ую, 5-ую, 9-ую строчки (строчки, где меняется n или N)и произвести матем. операции с цифрами и сохранить все это в новом текстовом файле. В языках программирования не силен, но хочется сделать самому. Насколько это сложно и с чего стоит начинать?

Это сообщение отредактировал(а) baltaero - 30.8.2005, 17:59
PM MAIL   Вверх
Akina
Дата 30.8.2005, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(baltaero @ 30.8.2005, 18:55)
Насколько это сложно

не очень

Цитата(baltaero @ 30.8.2005, 18:55)
с чего стоит начинать?

с чтения справки

Конкретно: алгоритм такой
  1. считываем очередную строку
  2. если комментарий - на шаг 1
  3. выделяем значение N
  4. сравниваем с предыдущим
  5. если равно - на шаг 1
  6. выделить данные и записать в массив
  7. запомнить новое N
  8. если не конец файла - на шаг 1
  9. выполнить мат. операции
  10. записАть в файл
  11. завершить работу



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
baltaero
Дата 31.8.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, попробую.
PM MAIL   Вверх
Alles
Дата 1.9.2005, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да ... мне когдато тоже с этим помогли.
Сначала объявляем переменные:

Код

Dim File_Name As String' Имя файла который нужно обработать
Dim sFile, SText As String' переменные для обработки в цикле ( когда будем обрабатывать данные)
Dim sLines() As String' Сюда загоняем данные
Dim oFSO As New FileSystemObject

Да ...при этой обработке тебе необходимо подключить Microsoft Scripting Runtime (Это в References)
Код

File_Name="Полный путь и имя файла"
SText = oFSO.OpenTextFile(File_Name).ReadAll' Читаем данные из файла
sLines = Split(SText, Chr(10))' Тут в переменной разбиваем все по строкам ( как в файле) 
'Дальше идет цикл на обработку строк в переменной
For NN = 0 To 10000
SText = sLines(NN)' Загнали в переменную строку
MyPos = Len(SText)' Если нужно то посчитали количество символов в строке
If SText = " Тут обрабатываем данные , то что тебе нужно" Then
' Если условие выполненно тогда открываем другой файл на добавление данных и записываем туда все твои вычисления и возвращаемся в цикл
If SText = "" Then Exit For' Если переменная пустая выходим из обрабортки
Next NN


Это процедура будет добавлять все твои вычисления в твой файл
Код

Private Sub AddData()
Open ("Полный путь и имя файла для добавления твоих данных") For Append As #1
Print #1, "Переменная которая хранит обработанные данные" & Chr(13)' Плюс перевод строки 
Close #1

End Sub


Что будет непонятно , спрашивай .
Удачи !

PM MAIL ICQ   Вверх
Akina
Дата 1.9.2005, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(Alles @ 1.9.2005, 07:09)
при этой обработке тебе необходимо подключить Microsoft Scripting Runtime

Нафига?
Код

Open "MyFile.TXT" For Input As #1
While NOT EOF(1)
   Line Input #1, strTemp
   ' Выполнить действия
Wend
Close #1
К тому же если файл на многие меги - FSO надо-о-олго задумается вмместе со сплитом.


Добавлено @ 08:08
Цитата(Alles @ 1.9.2005, 07:09)
' Если условие выполненно тогда открываем другой файл на добавление данных и записываем туда все твои вычисления и возвращаемся в цикл

И на каждом витке цикла переоткрывать файл? Бред... открыть ДО и закрыть ПОСЛЕ.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
baltaero
Дата 1.9.2005, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за внимание, начну, пожалуй, с изучения литературы. Что будет непонятно, спрошу.
PM MAIL   Вверх
Alles
Дата 2.9.2005, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну, хорошо , шорошо ....загоним данные после обработки в массив , а потом запишем в файл.
а насчет FSO и Slit, ты напрасно так погорячился дорогой !!!
У меня как раз была ситуация когда при OPEN - Line Input . в переменную залетали куски непонятной длинны, а нужно было обрабатывать именно по строкам!
Посоветовали , тут же к стати, использовать FSO, РАБОТАЕТ !!! да и логи у мня не маленькие, порядка 2-2,5 мега.
И я бы не сказал , что программа сильно призадумывается при данной обратотке!
PM MAIL ICQ   Вверх
Akina
Дата 2.9.2005, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(Alles @ 2.9.2005, 08:23)
ыла ситуация когда при OPEN - Line Input . в переменную залетали куски непонятной длинны, а нужно было обрабатывать именно по строкам!

Либо у тебя была строка постоянной длины, либо в ней были служебные байты. Чудес не бывает...

Цитата(Alles @ 2.9.2005, 08:23)
логи у мня не маленькие, порядка 2-2,5 мега.

гы... малёк ты еще... smile у меня логи по 5-20 гигабайт...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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