Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Ламерский вопросик, если позволите Добавлено: 01.05.04 17:52  

Автор вопроса:  kolyanoid

Я уже запарился. Вот такой геморой.

Есть некий файл (размеры могут быть разные: от 50кб до 500кб, но теоретически, могут существовать и более объёмные). Этот файл - 3Д модель. В нем помимо описания самого объекта, находятся ссылки на файлы текстур. Весь файл - это набор всяких непонятных каракуль, но ссылки на файлы текстур написаны нормальными буквами, и вполне поддаются чтению (ссылка на файлы текстур - это просто имя файла). Вот только, в каком месте файла будут эти ссылки - неизвестно. Т.е. они могут быть в начале файла, или в конце, или ваще где угодно. Вобщем, именно эти ссылки мне и нужно вытащить из файла.

Код я уже написал, но почему-то он работает не со всеми объектами. Если объяснять на пальцах, то я юзаю Line Input, затем в полученой строке ищу расширение файла текстур ("BMP"). Кода в строке найдена эта фраза, в обратном направлении (с конца к началу) узнаю имя файла текстур. Потом опять Line Input, и так до конца файла.

Потакому алгоритму ищутся любые ссылки на файлы текстур, причём имена файлов текстур могут быть как в верхнем, так и в нижнем регистре, и не зависимо от этого, эти ссыли находятся. Проблема в том, что НЕ из любого файла 3Д моделей их можно вытащить. Т.е. из одних вытаскиваются, а из других нет. Почему - не ясно.

непосредственно вопрос: есть ли другие, более надёжные способы поиска символьной строки внутри большого файла??? Если можете, то представьте код, пожалуйста :)

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #1
Добавлено: 01.05.04 20:34

Можно использовать RichTextBox. У него есть все необходимые функции. Загрузить нужный файл: RichTextBox1.loadfile "***", rtfText

Найти текст:

RichTextBox1.find "***",номер_начального_символа, номер_конечного_символа

Только если файл большой открываться будет долго, тут лучше использовать Get и массив, переводя байты в символы Chr(tekst(i)) по кусочкам в цикле.

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 01.05.04 23:09

Можно загрузить файл в строку и использовать цикл + InStr... А, ну и разбиение на строки с помощью Split() благо файлы даже длинной до 1 Мб, разбиваются достаточно шустро...

Ответить

Номер ответа: 3
Автор ответа:
 kolyanoid



Вопросов: 19
Ответов: 60
 Профиль | | #3 Добавлено: 02.05.04 02:02
Спасибо за оказанное содействие

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам