HDSoftware Skrevet 14. februar 2007 Skrevet 14. februar 2007 Heisan Har følgende kode; Private Sub ReadCallback(ByVal pArgument As IAsyncResult) Dim c As Client = pArgument.AsyncState If c.tcp.Connected Then Dim i As Integer = c.tcp.GetStream.EndRead(pArgument) If i = 0 Then Me.Clients.Remove(c) Dim d As New Receive(AddressOf ReceiveData) Me.ParentControl.Invoke(d, c.Name, APP_DISCONNECT.ToString) Else Dim Message As String = System.Text.Encoding.ASCII.GetString(c.Buffer, 0, i) Dim d As New Receive(AddressOf ReceiveData) Me.ParentControl.Invoke(d, c.Name, Message) c.tcp.GetStream.BeginRead(c.Buffer, 0, c.Buffer.Length, AddressOf Me.ReadCallback, c) End If End If End Sub Private Sub ReceiveData(ByVal pClient As String, ByVal pMessage As String) RaiseEvent Received(pClient, pMessage) End Sub og så har jeg produsert en streng fra et Clarion program på følgende måte: SendStr = NORTRIM:AddCard & '|**|' & | LOC:Kortnr & '<9>' & | LOC:Pinkode & '<9>' & | clip(LOC:Kortnavn) & '<9>' & | LOC:FraDato & '<9>' & | LOC:TilDato - til info - <9> er CHR(9) altså en TAB og |**| er noe jeg bruker for å skille felter i en record. Men andre ord havner jeg opp med to records fordi jeg bruker SPLIT med '|*|' i første omgang og så gjør jeg en SPLIT på chr(9) på del to av arrayen som lages først. Problemet er derimot at jeg får en exception på INVOKE statementet som sender Message til Receive Data. Noen som kan si meg hvorfor? Er det noen begrensninger i hva slags karakterer man kan ha i en streng som overføres via INVOKE? Exception meldingen sier som følger: FormatException was unhandled Inndatastrengen hadde ugyldig format. Troubleshooting tips: Make sure your argument are in the right format. When converting a string to DateTime, parse the string to take the date before putting each variable into the DateTime object. Get general help for this exception. o.s.v. Ole
aadnk Skrevet 14. februar 2007 Skrevet 14. februar 2007 Problemet er derimot at jeg får en exception på INVOKE statementet som sender Message til Receive Data. Noen som kan si meg hvorfor? Er det noen begrensninger i hva slags karakterer man kan ha i en streng som overføres via INVOKE? Ettersom strenger i VB.NET er av typen UTF-16, tviler jeg sterkt på at problemet er sistnevnte. I følge feilmeldingen ser det ut til at du gjør en variabelkonvertering fra en streng til en DateTime-datatype, der strengen ikke kan konverteres til en dato/tid. Jeg vil anbefale å isolere ulike deler av koden som du kan tenke deg kan være årsak i problemet. Da kan en mye lettere se hvor problemet ligger.
j000rn Skrevet 14. februar 2007 Skrevet 14. februar 2007 Hva med å sette breakpoint, step'e igjennom koden og se hvor den kræsjer? Får jeg 10 poeng om jeg gjetter riktig at feilen ligger i funksjonen "Received" og ikke i invoke ?
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå