Speciale tekens in een string

  • Onderwerp starter Onderwerp starter bn2vs
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
Hey,

Ik probeer eenn byte array naar een string om te zetten maar heb enkele problemen met het weergeven van die string. Soms krijg ik maar een deel van de string die ik zou moeten krijgen. Ik neem aan dat er een of ander teken in staat dat ervoor zorgd dat de rest niet komt ofzo.

dit zijn dingen die niet werken

Code:
        Public Function EncryptToText(ByVal plainText As String, _
                                      ByVal encType As EncryptionType) As String
            Dim bytes() As Byte = Me.Encrypt(plainText, encType)

            Dim str As New StringBuilder
            For Each byt As Byte In bytes
                str.Append(Chr(byt))
            Next
            Return str.ToString & vbNewLine & vbNewLine & "decrypted:" & vbNewLine & Me.Decrypt(bytes, encType)
        End Function
Code:
        Public Function EncryptToText(ByVal plainText As String, _
                                      ByVal encType As EncryptionType) As String
            Dim bytes() As Byte = Me.Encrypt(plainText, encType)

            Dim chars As New List(Of Char)
            For Each byt As Byte In bytes
                chars.Add(Chr(byt))
            Next
            EncryptToText = ""
            For Each chr As Char In chars
                EncryptToText &= chr
            Next

            Return EncryptToText & vbNewLine & vbNewLine & "decrypted:" & vbNewLine & Me.Decrypt(bytes, encType)
        End Function

dit gaat blijkbaar wel
Code:
        Public Function EncryptToText(ByVal plainText As String, _
                                      ByVal encType As EncryptionType) As String
            Dim bytes() As Byte = Me.Encrypt(plainText, encType)
            Dim txtbox As New System.Windows.Forms.TextBox

            For Each byt As Byte In bytes
                txtbox.AppendText(Chr(byt))
            Next

            Return txtbox.Text & vbNewLine & vbNewLine & "decrypted back:" & vbNewLine & Me.Decrypt(bytes, encType)
        End Function

Die laatste werkt dus, maar is niet echt veel soeps vind ik. Waarom werken de eerste 2 niet, en is er geen beter oplossing?

Alvast bedankt :)
 
Ik krijg geen enkele fout als ik hem run hoor, maar die 2 eerste functies returnen gewoon te weinig soms.

Of bedoel je dat ik iets met breakpoints moet gaan doen ofzo? :confused:
 
Of bedoel je dat ik iets met breakpoints moet gaan doen ofzo? :confused:

Met de debugger kun je zien wat er precies gebeurt in je code. Je kunt er dus ook achter komen waarom bepaalde tekens niet worden toegevoegd.
 
Ik heb een redelijk goed idee van wat er verkeerd gaat, maar heb geen idee hoe ik het oplos (op die 3e sub na).

Als ik een breakpoint of een messagebox in die loop zet moet ik ook een paar 1000x op volgende liggen klikken voordat ik bij mn fout zit, niet echt effectief dus :(
 
Ik heb een redelijk goed idee van wat er verkeerd gaat, maar heb geen idee hoe ik het oplos (op die 3e sub na).

Als ik een breakpoint of een messagebox in die loop zet moet ik ook een paar 1000x op volgende liggen klikken voordat ik bij mn fout zit, niet echt effectief dus :(

Met een messagebox heb je niet echt hetzelfde effect als met een debugger. Daarbij hoef je natuurlijk niet de originele string te gebruiken, maar kun je ook een kortere input string gebruiken om te testen.

En op een toets drukken gaat natuurlijk ook sneller dan met de muis op de knop te klikken.

(ik dacht in eerste instantie aan een unicode/ascii probleem; Maar dat lijkt me ook niet, als het return type hetzelfde is en het bij de ene wel werkt en bij de andere niet)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan