webForumDet fria alternativet
Logga in / Bli medlem

Binary read

.NET

6 svar · 249 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Trådstart#1

Någon som kan hjälpa mig med en funktion för binary read, som läser byte för byte? :q

Medlem sedan mars 20007 896 inlägg
#2

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?

Medlem sedan aug. 20003 575 inlägg
#3

System.IO.BinaryReader() ???

Medlem sedan mars 20007 896 inlägg
#4

Ooh, jag var i fel forum... Sorry. :r

Medlem sedan mars 20011 880 inlägg
#5

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.

Medlem sedan maj 20012 812 inlägg
#6
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
}

Medlem sedan mars 20011 880 inlägg
#7

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...

269 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)