Stream Problem

moson

Mitglied
Hi,

ich hab ein Problem beim auslesen von Dateien. Wenn ich eine Textdatei mit dem StreamReader auslese ist es kein Problem, doch wenn ich jetzt zb. ein Bild oder ein anderes Format auslesen will kommt nichts bei rum, das Bild hat aber trozdem einen Inhalt. Das sind zwar nur irgendwelche komischen Zeichen (öffnet mal ein Bild mit notepad :-) ) Doch ich möchte den gleichen Inhalt bekommen wie in Notepad, wie mache ich das muss ich da irgendwie Binär einlesen oder sowas?

mfg.

moson
 
Hallo.

Was meinst du mit

Doch ich möchte den gleichen Inhalt bekommen wie in Notepad

Aus dem Bild wirst du keinen Text machen können. Also sag mal was du mit dem Bild machen willst.
Anzeigen? Du könntest eine PictureBox erstellen und der Image Eigenschaft ein neues Image zuweisen.
Code:
myPictureBox.Image = new Image.FromFile(@"C:\testimage.jpg");
Oder das Bild selbst zeichnen etc.

MfG,
Alex
 
Nein, dass meine ich nicht.
Hier mal ein Auszug aus einer Datei:

In Notepad:
Code:
ÿØÿà JFIF  ` `  ÿÛ C 		

 $.' ",#(7),01444'9=82<.342ÿÛ C			

2!!22222222222222222222222222222222222222222222222222ÿÀ ã”" ÿÄ           	
ÿÄ µ   } AQa"q2?‘¡#B±ÁRÑð$3br‚	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ        	
ÿÄ µ  w AQaq"2?B‘¡±Á	#3RðbrÑ
$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ   ? ×øƒñVð–¿m§éöº{ÂöqÌLðnmÇ òô®T|gñÿ —ÿ Oÿ ]õñ•~$j¦¹y‡ƒÜ¢Z¹Y™·Œ 6zqÁ¬
C´×l-ÄcX·óüH!šNþC!ÅžäWÈPY˜*ƒ´6Ö
C]ô•%Í	9óhÌ!ñ—ÄGþ\´ü?üU8|cñÿ —-#ÿ Oÿ [V>Ñ&²Ñ®5=ôûùì5	ßOO?tòÄÈ#AɽŽÒ͵YKc®*?·áû]ÄZ¢øfòlm¬Z;mU&€’GŽFUîØpÜìAœV¶ö?õ{z?Ê£ãˆOü¹iø
øª–‹^%¸ž8aÓ´¹%‘‚"%¡ff'  ’Moxz_ÄV0Ú:Ék0{yµçk8ãò¥±2ì ·,äávà1&²¬tK}>ÿ Á—n?ö›k?°Ü\êß½*vœMÊÞXÁpW#<óÍöˆ^§r	~,x–Þi!ŸNÓ"–6(ñ½¡VVAn55§Å_Ü¥µ¦—§ÜNùÛ6LìØ8 äð	
CÃ:wˆu)nÖK+¶ñLú|ŽòIåN˜/—ó¼?@PØã‚5,t=;E±¸Ô´ÉmžïÃú?Ú,îc’|·?F‘?rœ?#c5-P·Ã¨ýûîsRüTñ<3iúdrÆÅІVORŠúñÿ —=+ÿ ?ÿ [2éÖ:ö©àh/´ÉtÛxd¿Gu
"¤Ÿèûó³%—¿<*<?¡¼—RÉáÍBÝí´‹«“ô2ÛÅ,‘²dk?F!†ütÆ3NÔzÄWŸs<|V×Oüºiøøªxø©®ŸùtÒÿ ðÿ ¯Yž$ÓôÝ#UÐîb²Íå…µôö‚V
Kgz+X·¹$d×Tþðœ>!Ñ4Ï3Î?U?¯R]ïËVCäÃó»sg†ã)¸PI>Q)O¹”>)k‡þ]4¿üÿ ëÓ‡Å
lÿ ˦™ÿ €ßýzÒ¶ðÖ?,ò÷G[{á£Þ]˧<“"£Å"ˆÜ©}à0-Õ°qÆ+:M2ÏNñ¯„e³‡ÉKèì®Þ Å•Ÿ?»‰8ã<“ÔóIF‹Ú#½NäÖ¿<E{p¶öºuŒó>vÇ™f88 ç4Áñ3Z?òë¦ÿ à7ÿ ^º7\·¹ñüNû««˜u[É|û•ÈO)×É?æbS#?ÃÐq鉅ôÙ¬¾Û‹=ðÙº3«¹O¶çæÎ7¯N:T¥JþôGyôe1ñ+Y?òë¦ÿ à7ÿ ^œ>$k'þ]tßüÿ ëÕýoÃZe–?¯Km¦â4´67ûä?h·{gvÆëü šO
xgNÕaðԦɮ#™®—Qtw!Jÿ «AùLtÎ{Óµ^n_ê×ê^×)?ˆÚÁÿ —m;ÿ ÿ úõ<~;×¥‚YãÓìžqæH¶„ªdàd猞™©ß@Ò^Ì@¶+ŸðŽ?Oí#ï3g‚ÅvŸLwàŠ½©é¶ú_†|Mocg²Ä%‘‚ï.ßj‚[q;O'ø@ÒjŽÊ!z?ÌqñW?òí§à?ÿ ^§—Çí¿—çØYÅæ ‘7Úíܧ£žAõ«ÖzÄ7„ü7=ËÜI	KÅk4Pc¹Ë™n 'ûߊ–ëKŽüéÓKÜ-¶…j~̱¼’¾æ#*ŠèHÎxÈãžZIëóèÌ¡ãíTÿ ˾Ÿÿ €ÿ ýzpñæªåÞÃÿ ÿ úõ«ÿ Þ€5ÍSN“t§È—Œì]ËÛlãÀ# 9å¹ïŠÀÑ¿³dñ„еÄ2µôe-¼ÈŠea|œûzþtÔ(µu9T]KƒÇZ¡ÿ —{üãN8ÔÏü»Øà8ÿ Øðî

usw...

in meinem Prog:
Code:
ÿØÿà

Nur die ersten 4 bytes.

*edit*

Was mir grad auffällt: Es scheint so als wenn der immer aufhört wenn ein Leerzeichen kommt. Textdateien lassen sich aber übers Leerzeichen hinaus lesen...
 
Zuletzt bearbeitet:
Habs per BinaryReader probiert und die Bytes ausgelesen in ein ByteArray.
Danach:

Code:
textBox1.Text = Encoding.Default.GetString(byteArray);
Bei der Codierung hab ich auch schon alle durchprobiert von ASCII bis UTF-8.

Und normal per StreamReader. Beides funktionierte nach meinen Wünschen nicht.

Ich möchte das gerne so angezeigt bekommen weil ich das notepad durch mein eigenes programm ersetzen möchte und öfter mal irgendwelche "nicht .txt" Dateinen öffne.

*edit*

Hier nochmal die komplette Methode:
Code:
public void dateiOeffnen()
		{
			if(openFileDialog1.ShowDialog() == DialogResult.OK)
			{
				fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
				bRead = new BinaryReader(fs);
				fi = new FileInfo(openFileDialog1.FileName);
				tf = bRead.ReadBytes(Convert.ToInt32(fi.Length));
				textBox1.Text = Encoding.Default.GetString(tf);
				fs.Close();
			}

		}

*edit*

Erstmal danke für deine Antworten.
Anscheinend kommt es davon das eine 0 in einem Byte vorkommt. Mit System.Text.Encoding kodiert der also nur bis zur 0 um, nicht weiter. Kann mir da jemand sagen wie ich das umgehen könnte oder so?

*edit nr. 2*

Ich werde dann die nullen mit 32 ersetzen, so wie im Notepad auch.

Danke nochmal für die Hilfe!
 
Zuletzt bearbeitet:
Zurück