Någon som kan hjälpa mig med en funktion för binary read, som läser byte för byte? :q
Binary read
6 svar · 249 visningar · startad av saw
Vad jag har förstått så går inte det riktigt i C/C++, eftersom att det inte finns någon datatyp som definierar en byte. Det närmaste du kommer är i så fall en char, som är definierad som åtta bitar. Alltså; Läs en char i taget så läser du åtta bitar - en byte - i taget. Vad vill du egentligen åstadkomma?
System.IO.BinaryReader() ???
Ooh, jag var i fel forum... Sorry. :r
Backgrund:
Jag försöker att läsa en sty-fil, för att kunna förska förstå hur stylerna in min JORG PA 80(Keyboard) fungera.
Jag har sökt ganska länge och kommit hit:
BinaryReader binReader = new BinaryReader(File.Open(filnamn, FileMode.Open));
if(binReader.PeekChar() != -1)
{
rText.Text = binReader.ReadString();
//rText.Text= r.ReadString().Replace(null,"");
binReader.Close();
}
Det händer ingenting när jag kör denna koden, men jag får inga fel heller...
Jag har också för mig att man skall köra en replace, men gör jag det , DÅ kommer error.
rText.Text = binReader.ReadString();
För att göra en ReadString() så tror jag att din ström måste ha blivit skapad en BinaryWrite, vilket den säkert inte har.
Du borde använda vanliga Read() som läser en byte itaget tills du nått slutet på strömern.
Alltså något sånt här om jag kommer ihåg rätt.
readerNOTEOF = true;
While(readerNOTEOF){
byte b = binReader.Read();
if(b == -1)
readerNOTEOF = false;
else
console.write(b);
}
Men reservartion för feltänk :)
- M
}
Jag har kommot så här långt:
if((myStream = openFileDialog1.OpenFile())!= null)
{
Byte[] myBytes = new Byte[myStream.Length];
int i = myStream.Read(myBytes,0,myBytes.Length);
rText.Text = System.Text.Encoding.UTF8.GetString(myBytes);
myStream.Close();
}
Jag kan öppna väldigt mycket, men inte se mina sty-filer...
I VB kude jag skriva så här:
sFil = Label1.Caption
Text1.Text = ""
Open sFil For Binary As #1
strRow = String(LOF(1), " ")
Get #1, , strRow
strText = Replace(strRow, vbNullChar, "")
'strText = Replace(strRow, vbNullChar, " ")
Text1.Text = strText
Men i C# så verkar det värre...