Autor Beitrag
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 25.02.14 13:52 
Zeig mal einen kompletten Quelltext, der in sich schlüssig ist und der das Problem zeigt.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
m.keller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win xp, Win 7
C# (VS 2008)
BeitragVerfasst: Di 25.02.14 13:58 
habe den Fehler gefunden.

ausblenden C#-Quelltext
1:
2:
3:
4:
while (readerNew.BaseStream.Position < readerNew.BaseStream.Length)
{
    resultUploadValues[(j * resultUploadKeys.Length) + i] = resultUploadValues[(j * resultUploadKeys.Length) + i] + string.Format("{0:X2}", readerNew.ReadByte());
}


Der Fehler war {0:X} --> {0:X2}

Moderiert von user profile iconChristian S.: Beiträge zusammengefasst

damit bekomme ich zu mindestens die Hex werte alle raus.
Den Rest habe ich jetzt in dem view mit cast(Feld as Varchar(max)) geändert
Ist zwar nicht schön und stellt mich gerade nicht zufrieden, aber es funktioniert erst ein mal.

_________________
Der gesunde Menschenverstand ist nur eine Anhäufung von Vorurteilen, die man bis zum 18. Lebensjahr erworben hat. (Albert Einstein)
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 25.02.14 16:12 
Zitat:
Warum kann er die ersten 00 nicht in ascii interpretieren?


Weil der Wert 0 in Ascii Ende des strings bedeutet. 0 wie auch einige andere Werte sind keine druckbaren Zeichen.

de.wikipedia.org/wiki/Nullzeichen
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 25.02.14 16:37 
Hallo Ralf (und auch m.keller),

nein, der Fehler war ein anderer:
da in der Schleife s = s + string.Format("{0:X}", readerNew.ReadByte() ausgeführt wurde, sind für die 4 Werte {0;0;156;202} die 4 Teilstrings "0", "0", "9c" "ca" erzeugt worden, so daß als Gesamtstring dann "009cca" herauskam (eben weil bei den einstelligen Hexstrings die vordere "0" nicht ausgegeben wurde - und dies wurde eben durch die Formatangabe "{0:X2}" korrigiert).

Auch wenn der Titel dieses Beitrags "Problem mit Typen-Konvertierung" lautet, so hatte es die ganze Zeit nichts mit dem Konvertieren des Byte-Arrays aus der Datenbank zu tun. Hätte user profile iconm.keller von anfang gleich die richtige Problemstellung gepostet, wäre es gar nicht zu diesen (beiderseitigen) Fehlinterpretationen gekommen.