Рейтинг:
1
Member 14100511
Спасибо за ответ, оригинальный Грифф. Мацей Лос - я понятия не имею, что такое 5ed! это должно означать.
Так что, может быть, я не очень хорошо написал свой qyestion. Моя проблема заключается не в том, как записать массив в файл, а в том, как я читаю строку символов, затем сбрасываю указатель файла и читаю байты, затем сбрасываю указатель файла и читаю массив поплавков, читаю еще несколько байтов, сбрасываю указатель файла и читаю другой массив поплавков. Как только мне это удастся, я захочу сбросить указатель и переписать два массива float, и если мне придется выяснить, как преобразовать C# (с которым я не знаком) в VB.NET (с которым я не знаком) я могу предвидеть, что никогда не завершу проект.
OriginalGriff
"5ed!" относится к системе репутации в CP: если вы посмотрите выше этого, вы найдете строку, которая говорит "Решение 1" - Посмотрите направо, и вы увидите пять звезд. Вот такая "репутация" у этого решения. В этом случае 1 голос "пяти звезд" означает, что Мацей Лос счел это хорошим ответом на ваш вопрос, как было заявлено. 5 стартов-это "голос вверх", который дает положительную репутацию автору, 1 звезда-это "голос вниз", который дает отрицательную репутацию.
Вы можете в значительной степени игнорировать его или участвовать - это зависит от вас.
Если Вы читаете весь файл в массив байтов, вы можете получить к нему доступ как к оперативной памяти, используя индекс массива в качестве "системы адресации". Затем вы можете довольно легко преобразовать байты в любой нужный вам тип данных - и ссылка, которую я вам дал, содержит код, который делает именно это: он работает из буфера, но это довольно тривиально изменить. Взгляните на некоторые методы в загрузке teh, и вы найдете код для преобразования ряда байтов в строки, символы, целые числа, короткие, двойные ... почти все "стандартные типы" покрыты.
Эта партия должна дать вам достаточно, чтобы делать то, что вы хотите, без особых проблем.
Member 14100511
Окей,
Я оставлю код как VB6. Из того, что было сказано, кажется, что Microsoft в своей бесконечной мудрости лишила VB здравого смысла.
Вместо того, чтобы просто делать то, что я хочу, я должен сделать что-то еще, а затем сделать кучу других вещей, чтобы я мог продолжать и делать то, что я хочу делать, а затем сделать еще одну кучу вещей, чтобы произвести мои изменения.
Если на этом сайте есть эквивалент модераторов, пожалуйста, удалите мой вопрос и удалите мое членство.
Спасибо.
OriginalGriff
Нет, они переместили его из довольно дерьмового языка меньшинства в тот, который можно использовать в различных средах (от Windows, до интернета, облака, iPhone и Android), даже если он все еще считается "детскими шагами" языка многими по сравнению с C# или C++.
Да, есть чему поучиться, потому что структура огромна, последовательна и содержит много вещей, которые действительно облегчают вам жизнь, когда вы привыкли думать "современным способом". VB6 в значительной степени умер пятнадцать лет назад, и придерживаться его-очень ретроградный шаг.
Я бы посоветовал вам на время забыть VB и вместо этого изучить C# и .NET (чтобы ваш опыт работы с VB6 не побуждал вас использовать устаревшие конструкции вместо более новых эквивалентов). Сам язык не должен занимать больше недели (черт возьми, опытный разработчик может получить достаточно, чтобы обойтись днем!), но ... NET framework займет хорошее количество времени, там есть огромное количество. Вам книги издательства wrox и Эддисон Уэсли делать какие-то хорошие, и Петцольд бесплатно:
http://www.charlespetzold.com/dotnet/index.html
Хотя фон C++ основан в основном на нем.
Как только вы привыкнете к нему, это сделает жизнь намного проще, а развитие быстрее и надежнее.
Рейтинг:
1
Dave Kreskowiak
Если вам нужно попытаться выполнить преобразование кода "строка за строкой" (я не рекомендую этого делать!), то вы ищете BinaryReader[^] и BinaryWriter[^] учебные занятия. Он позволяет выполнять все виды операций чтения и записи для различных типов (байт, int16, int32, int64, подписанный байт, одиночный, ...)
Однако они не предоставляют никаких функциональных возможностей для поиска вокруг файла. Это достаточно легко сделать, открыв файл с помощью FileStream, который позволит вам искать вокруг. Этот файловый поток затем может быть передан в BinaryReader/Writer, который позволит вам читать/писать именно то, что вы хотите.
Using myFile As FileStream = File.Open(filename, FileMode.Open)
Using fileContent As New BinaryReader(myFile)
myFile.Seek(position)
Dim someValue As Integer = fileContent.ReadInt32();
End Using
End Using