Итак, я работаю над загрузчиком модели в своей программе DirectX 11, и я столкнулся с тем, что я считаю уникальной проблемой. Поэтому я потратил немного времени на поиск решения, но этого не сделал. Моя проблема заключается в том, что в моем файле, который имеет путь к текстуре и список вершин, я хочу иметь возможность выбирать определенные части и удалять некоторые из них. Ниже мой пример файла для текстур меньше треугольника:Расширенные операции с файлами и строками
T:0$
(0, 5, 0)
(5, 0, 0)
(-5, 0, 0)
^ЭТО СТАРЫЙ, ПОСМОТРИТЕ НА EDIT НИЖЕ^
Позвольте мне объяснить, что здесь происходит. Во-первых, «T: ___» - это мой путь к тексту. Я установил значение «0», потому что я не использую текстуру. «$» После «T: 0» - это знак моей программы для конца пути файла и начала вершин.
Теперь вот что мне нужно для моей программы.
1. Прочтите файл, пока символ «$» не будет достигнут. Затем удалите первые два символа («T:») и «$», если они были добавлены. Наконец, поместите оставшийся текст в строку TextureData. Постскриптум Не удаляйте «T:» из файла, просто мою строку (файл должен оставаться нетронутым).
2. Поместите оставшийся текст (вершины) во временную строку под названием VertexData, а затем, возможно, удалите скобку ..? Я хотел бы знать, как это сделать, но, возможно, не использовать его в данный момент.
Надеюсь, я поставил себя и свою проблему достаточно ясно.
Заранее благодарен.
--- ВАЖНО EDIT ---
Я изменил свой формат немного, я посмотрел на файл .obj и решил, что это будет легче сделать. Моя текстура и вершинных файл теперь выглядит следующим образом:
T:0$
v 0 5 0
v 5 0 0
v -5 0 0
--- КОНЕЦ EDIT ---
Этот код здесь то, что я в качестве основы:
Модель функция загрузки:
bool LoadTVF(string FP)
{
ifstream TVFReader;
TVFReader.open(FP);
if (TVFReader.is_open())
{
ReadLine(1); // Function not fully working, need to improve
// Load vertices and texture into strings
TVFReader.close();
return true;
}
else
{
return false;
}
}
Функция ReadLine (только для того, чтобы организовать мой код и перейти к определенной строке и получить данные линий и поместить в строку, резание и модификация строки необходимо вернуть в m ain):
string ReadLine(int character)
{
return lineData; // I know this doesn't work, just don't know what to return?
}
Честно говоря, с этой функцией ReadLine я понятия не имею, что я делаю. Я просто создавал какой-то фрейм, чтобы показать вам, как я предпочитаю, чтобы код был организован.
Еще раз спасибо.
Что вы делали до сих пор? – n0rd
Я добавлю это в вопрос, одну секунду. – Xenonic
также, пока вы на это: какие у вас вопросы? – n0rd