Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
19/06/08 10:53
klez91
Ciao ragazzi :)! Ho questo problema con le stringhe, in pratica se vado a leggere una stringa di testo da un Stream di rete questa risulta "apparentemente" danneggiata. Dico apparentemente perche la stringa è leggibile in ogni sua parte però se la utilizzo, nel mio caso, per la funzione GetDirectories del Namespace System.IO.Directory sebbene rappresenti la lettera di un'unità valida come ad esempio "C:" mi genera un'errore di ArgumentException. Inoltre ho notato che mettendo in pausa il programma e verificando l'esattezza della stringa letta dallo stream di rete questa anziche essere "C:", è "C: , senza le virgolette di chiusura alla fine. Il metodo per inviarla è questo:

'...
'A parte tutte le variabili iniziali accetta/rifiuta connessione ecc.
Dim NtStrm As NetworkStream
Dim DataSend() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes("C:")
NtStrm.Write(DataSend, 0, UBound(DataSend) + 1)


Mentre per ricevere è:

Dim DataArrival() As Byte
NtStrm.Read(DataArrival, 0, Client.ReceiveBufferSize)
Dim S As String = System.Text.ASCIIEncoding.ASCII.GetString(DataArrival)


P.S. - Ho notato anche che nella parte del programma deputata alla ricezione della stringa se volessi utilizzare un'altra semplice funzione come MsgBox(S & "Prova";), mi restituisce sempre solo la S e non sono riuscito a capire il perché!

Vi ringrazio molto !
Ultima modifica effettuata da klez91 19/06/08 17:14
aaa
20/06/08 11:54
Il Totem
E' capitato anche a me. Succede perchè in coda alla stringa ci sono carattere invisibili che vengono letti comunque. Usa questa funzione:
Function GetString(ByVal ByteData() As Byte) As String
  Dim Result As New System.Text.StringBuilder

  For Each B As Byte In ByteData
    If B = 0 Then
      Exit For
    Else
      Result.Append(Chr(B))
    End If
  Next

  Return Result.ToString
End Function
Ultima modifica effettuata da Il Totem 20/06/08 11:55
aaa
20/06/08 12:23
klez91
Grazie Totem era proprio quello che mi serviva :k: !
aaa
21/06/08 7:02
Il Totem
Lieto che ti sia piaciuto :k:
aaa