Laden...

Profil von lechner

myCSharp.de - Member Mitglied seit
L
lechner
myCSharp.de - Member
6
Themen
19
Beiträge
Dabei seit
01.04.2007
Letzte Aktivität
vor 17 Jahren
Erstellt vor 17 Jahren

Problem wurde gelöst!

Erstellt vor 17 Jahren

Hallo,
ich habe folgendes Tutorial auf der MSDN Hp gefunden:
http://207.46.19.190/germany/msdn/library/data/xml/XSLTSupportInNET.mspx?mfr=true

Der Abschnitt "Erstellen von serverseitigen Steuerelementen mit XML und XSLT" hat mich beschäftigt.

Ich benötige einen solchen Code, funktioniert auch alles problemlos, doch wenn ich statt asp-ServerControls ben. def. Steuerelemente verwenden möchte,also
z.B.: <PSA:HALLO id="Test" runat="server" />
anstatt: <asp:Button ...
Dann kommt eine schöne Fehlermeldung: Unbekanntes Servertag PSA:HALLO

Was muss ich ändern / ergänzen damit der Code auf der MSDN Seite auch mit ben.def Steuerelementen funktioniert?

Danke!

Erstellt vor 18 Jahren

Hallo,

@herbivore: encoding.GetBytes() verwende ich bereits, wie du bei meinem obigen Quellcode sehen kannst (letzte Zeile)

@powerbond007: Der StringBuilder ist leider auch nicht viel schneller als der String selber 😦.

Die Idee von Hajoseb ist nicht schlecht, doch ich habe ein Problem bei der Umsetzung: in einen Stream schreibe ich ja ein ByteArray,
ich möchte aber nach jedem Byte im ByteArray z.B. eine 1 haben.

Jetzt könnte ich mit einer foreach() Schleife das ByteArray lesen, das Byte in einen String und die 1, dann mit encoding.GetBytes() arbeiten und dann in den Stream schreiben.

Ganz schön umständlich, gibt es denn keinen einfacheren, besseren, schnelleren Weg???


//MemoryStream ms mit irgendeinem Inhalt:

ms.Position = 0;
byte[] buffer = new byte[ms.Length];
ms.Read(buffer, 0, buffer.Length);

foreach (byte p in buffer)
{
    string s = "";
    s = p.ToString() + "1";
    ms.Write(Encoding.ASCII.GetBytes(s), ms.Position, s.Length);
}

Jemand eine bessere Idee??

Danke

Erstellt vor 18 Jahren

@Hajoseb: eine schnelle und gute Lösung, werde es gleich in die Tat umsetzen

@powerbond007: Auch eine gute Idee

Werde beide gleich testen

Danke

Erstellt vor 18 Jahren

Guten Abend,

Ich habe folgendes Problem:
Ein MemoryStream (ms) enthält irgendwelche ASCII Zeichen.
Ich möchte dann nach jedem Byte ein beliebiges Zeichen einfügen, sagen wir mal z.B. 0.

Ich habe es wie folgt gelöst, da es aber mit einem String arbeitet ist es bei größeren Streams unglaublich langsam. Ein String kann halt nicht mit einem Stream mithalten.

Hier erstmal mein unglaublich langsames Programm:


//MemoryStream ms mit irgendeinem Inhalt

long cts2 = 0;
                byte[] STB2 = new byte[ms.Length];
                ms.Position = 0;
                while (cts2 < ms.Length)
                {
                    STB2[cts2++] = Convert.ToByte(ms.ReadByte());
                }
                
                
                ms.Position = 0;
                string str = null;
                foreach (byte p in STB2)
                {
                    str += p + "0";
                }
                System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                
                ms = new MemoryStream(encoding.GetBytes(str));

Es muss doch eine andere Möglichkeit mit einer höheren Performance geben, also direkt über den Stream ohne den Umweg über den String zu nehmen??

Gruß,
lechner

Erstellt vor 18 Jahren

Gebe ich den Code aus der Variable content aus, dann sieht das so aus:
235646421165104606769406746463030464645674695879....

Ich habe den binären Code aber in einer Variable und nicht in einer Datei!

So sieht der Code aus, den ich normalerweise in einer Datei habe, ich habe den Code aber in einer Variable!


ÐÏࡱá                >  þÿ	                               þÿÿÿ       ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì¥Á q`	  ø¿  

Und daraus möchte ich das: 674697169791797...

Und es handelt sich um kein ByteArray sondern um eine String Variable

Erstellt vor 18 Jahren

Nun gut hier hast du den Code, ich hoffe es ist klar was ich meine:


string output = "";
private string BinReader (string path)
	{
			FileInfo file_A = new FileInfo(path);
			BinaryReader reader = new BinaryReader(file_A.OpenRead());

			while (reader.PeekChar() > -1)
			{
				output += reader.ReadByte();
				
			}

			reader.Close();
			return output;
	}

//Die Datei text.doc binär öffnen und der daraus resultierende ZahlenCode in eine Variable schreiben
string content = BinReader(text.doc);

Der Nachteil ist dann aber, das ich den Umweg über die Datei nehmen muss.

Wie mache ich das aber wenn ich den Inhalt in einer Variale habe und nicht in einer Datei??

Erstellt vor 18 Jahren

Gibt es eine Funktion oder sonst was mit dem ich den Inhalt einer Variable in Zahlen umwandeln kann?

Erstellt vor 18 Jahren

Okay, noch mal.

Ich möchte eine Datei, aber keine Textdatei, also exe oder doc oder xls...
Öffne ich diese Datei mit dem BinaryReader kommt der Zahlen BinärCode raus:

1374641032016546574641354679130079707895679746546...

Und speichere ich diesen Inhalt wieder mit dem Binary Writer kommt wieder der gewohnte Inhalt raus, den wir kennen wenn man eine exe oder doc Datei mit dem Editor öffnet.

Ich möchte aber den ZahlenBinärCode, den bekomme ich auch, aber nur wenn ich den BinärCode aus einer Datei lese.

Ich will aber den Zahlen BinärCode ohne den BinärCode aus einer Datei zu lesen, also habe ich den BinärCode den man ansonsten mit dem Öffnen mit dem Editor bekommt in einer Variable.

Und jetzt möchte ich den binären WirrWarr der Variable in Zahlen BinärCode umwandeln, ohne den Umweg über den BinaryReader zu nehmen.

Erstellt vor 18 Jahren

Als Ausgangscode habe ich binären Code: z.B. einer EXE-Datei (öffnen mit Editor)

Und als Endprodukt möchte ich folgendes:

24745740024787100487748795861021548752658416574122102121....

Das funktioniert auchn wenn ich die Datei mit dem BinaryReader öffne und dann den Text in eine TextBox schreibe oder sonst wohin.

Ich möchte aber zu dem "ZahlenWirrWarr" kommen ohne den Code aus Dateien zu lesen.