|
Тема
|
Как се чете binary файл?
|
|
Автор |
Werewolf (Demon Team) |
Публикувано | 08.09.04 18:01 |
|
Здрасвейте,
трябва да прочета един файл който не е нормален ASCII текстов, а е BINARY. Проблемът е, че ако го чета като текстов файл с това по-долу не става:
Dim FileData As String
FileOpen(1, "D:\" & FileName, OpenMode.Input, OpenAccess.Default)
Do Until EOF(1)
FileData = FileData & LineInput(1)
Loop
FileClose(1)
Логично, че няма да стане, защото видях, че по този начин операторът LineInput() се ориентира по символите 0Ah и 0Dh, за край на реда и съответно ги реже. От тук получавам един прекрасен бинарен файл ако искам, но с липсващите въпросни байтове на всичките места на които се срещат. Моля ако някой има пример за четене на бинарен файл, да помогне
Благодаря.
[image]http://www.zcs.k12.in.us/ZCHS/images/wrestling.gif[image]
| |
|
File.OpenRead ти връща FileStream. Върху него си правиш един BinaryReader, а пък той си има метод ReadBytes(). Нещо като:
Dim stream As Stream
stream = File.OpenRead(filename)
Dim reader As New BinaryReader(stream)
Dim block As Byte()
Do
block = reader.ReadBytes(256)
' тук си обработваш текущия блок
Loop While block.Length = 256
но след безсънни дълги нощи станах силен и голям
и вече знам, че мога да се справя сам
| |
Тема
|
Re: Как се чете binary файл?
[re: Werewolf]
|
|
Автор |
ess (мечтател) |
Публикувано | 08.09.04 19:01 |
|
Ъъъъ, то хубаво си постнал в .NET и очевидно търсиш решение за VB.NET, но начина по който работиш е малко старичък...
Ето ти решението на VB.NET:
Imports System.IO
Module Module1
Sub Main()
Dim BinFile As FileStream = New FileStream("D:\WINNT\winhelp.exe", FileMode.Open)
Dim Size As Integer = BinFile.Length
Dim Buffer(Size) As Byte
BinFile.Read(Buffer, 0, Size)
End Sub
End Module
И на C#:
using System;
using System.IO;
namespace stream2
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
FileStream stream = new FileStream("D:\\WINNT\\winhelp.exe", FileMode.Open);
int size = (int)stream.Length;
byte[] data = new byte[size];
stream.Read(data, 0, size);
}
}
}
както виждаш, почти еднакви са.
---
...и аз пиша на кирилица!
| |
Тема
|
Re: Как се чете binary файл?
[re: ess]
|
|
Автор |
Werewolf (Demon Team) |
Публикувано | 09.09.04 09:26 |
|
Благодаря колеги
ами да, на VB.NET съм писал, но всъшност няма значение на какво ми отговарят. Благодаря за помоща и написаното в двата варянта ![](http://i.dirbg.com/clubs/icons/cool.gif)
[image]http://www.zcs.k12.in.us/ZCHS/images/wrestling.gif[image]
| |
|
|
|
|