Страница: 1 |
Я уже запарился. Вот такой геморой. Есть некий файл (размеры могут быть разные: от 50кб до 500кб, но теоретически, могут существовать и более объёмные). Этот файл - 3Д модель. В нем помимо описания самого объекта, находятся ссылки на файлы текстур. Весь файл - это набор всяких непонятных каракуль, но ссылки на файлы текстур написаны нормальными буквами, и вполне поддаются чтению (ссылка на файлы текстур - это просто имя файла). Вот только, в каком месте файла будут эти ссылки - неизвестно. Т.е. они могут быть в начале файла, или в конце, или ваще где угодно. Вобщем, именно эти ссылки мне и нужно вытащить из файла. Код я уже написал, но почему-то он работает не со всеми объектами. Если объяснять на пальцах, то я юзаю Line Input, затем в полученой строке ищу расширение файла текстур ("BMP"). Кода в строке найдена эта фраза, в обратном направлении (с конца к началу) узнаю имя файла текстур. Потом опять Line Input, и так до конца файла. Потакому алгоритму ищутся любые ссылки на файлы текстур, причём имена файлов текстур могут быть как в верхнем, так и в нижнем регистре, и не зависимо от этого, эти ссыли находятся. Проблема в том, что НЕ из любого файла 3Д моделей их можно вытащить. Т.е. из одних вытаскиваются, а из других нет. Почему - не ясно. непосредственно вопрос: есть ли другие, более надёжные способы поиска символьной строки внутри большого файла??? Если можете, то представьте код, пожалуйста :)
Можно использовать RichTextBox. У него есть все необходимые функции. Загрузить нужный файл: RichTextBox1.loadfile "***", rtfText Найти текст: RichTextBox1.find "***",номер_начального_символа, номер_конечного_символа Только если файл большой открываться будет долго, тут лучше использовать Get и массив, переводя байты в символы Chr(tekst(i)) по кусочкам в цикле. Можно загрузить файл в строку и использовать цикл + InStr... А, ну и разбиение на строки с помощью Split() благо файлы даже длинной до 1 Мб, разбиваются достаточно шустро... Страница: 1 |
Вопрос: Ламерский вопросик, если позволите
Добавлено: 01.05.04 17:52
Автор вопроса: kolyanoid
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #1
Добавлено: 01.05.04 20:34
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 01.05.04 23:09
Номер ответа: 3
Автор ответа:
kolyanoid
Вопросов: 19
Ответов: 60
Профиль | | #3
Добавлено: 02.05.04 02:02
Спасибо за оказанное содействие