Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [vb.net 2008] Oggetto Serialport

    devo sviluppare un piccolo programma che legge gli SMS da un telefonino utilizzando i comandi AT+

    per farlo ho usato l'oggetto serialport e attraverso il comando Write() riesco a scrivere correttamente sul dispositivo.
    il mio problema è che l'output del dispositivo puo' essere generato a fronte di una una mia richiesta oppure da un evento interno del telefono (RING se sta quillando, ESIGNAL se non c'e' campo)
    se si tratta di una risposta ai miei comandi la stringa termina con OK o con ERROR (seguito da un ritorno a capo)
    se si tratta di una risposta ad un evento del telefono il messaggio puo essere (RING, ESIGNAL ecc) deguito da un ritorno a capo


    come posso spezzare l'output in un array di strighe avendo come terminatore il rotrno a capo?

    esempio di stringa origine
    AT OK
    ATE0 OK
    ATE3 ERROR

    come vorrei una converisone di questo tipo
    stringa(1) ="AT OK"
    stringa(2) ="ATE0 OK"
    stringa(3) ="ATE3 ERROR"

    Grazie
    Delfino Cobalto

  2. #2
    Usando la funzione Split ....
    codice:
    dim arr() as string= RisultatoInStringa.Split("\r\n")
    Facci sapere...
    Ciao

  3. #3
    oppure

    Dim arr() as string = StringaTotale.Split(new String() {vbCrLr})

    ho notato che se non specifichi il costruttore new String la split tente sempre a funzionare come se gli passassi un char e da dei risultati non sempre soddisfacenti
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  4. #4
    Non è la stessa cosa ..... l'utilizzo della costante VbCrlf è possibile solo grazie all'importazione automatica(da parte di VisualStudio) del namespace Microsoft.VisualBasic.
    Tale riferimento, è buona norma ELIMINARLO, in quanto è, per il momento, presente nel .Net Framework, solo per ragioni di compatibilità con progetti ex-Vb6.
    Ciao.

  5. #5
    grazie jeremy
    la tua soluzione è ottima.

    c'e' un metodo per separere la tringa con piu' opzioni?

    se volio separare la mia striga origine con \r\n e conteporaneamente il simbolo ">" ?
    non tutti gli output che ho visto seguono le stesse regole
    grazie
    Delfino Cobalto

  6. #6
    se volio separare la mia striga origine con \r\n e conteporaneamente il simbolo ">" ?
    non tutti gli output che ho visto seguono le stesse regole
    grazie
    Se guardi bene la firma della funzione Split, ti accorgerai che, l'argomento "separator()" è dichiarato ParamArray, pertanto, puoi passare come argomento più valori(separati dalla virgola)....
    Es.: "\r\n","<",">",etc...
    Per qualcosa di più complesso, ad ogni modo, puoi sempre fare affidamento alle RegularExpression ..... ma questo è un'altro capitolo.

    Facci sapere...
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.