Newsgroup: it.comp.lang.visual-basic
Titolo: stringa pazzesca

Scusate ma non mi veniva un subject migliore...
come qualcuno di voi sa, sto finendo un ocx per la gestione di un
modem gsm (gestione sms, gestione rubrica, ecc. ) Il problema č
questo: la mia funzione listSMS(mem as string) as string  utilizza il
comando AT+CMGL="ALL" che mi ritorna un testo contenente tutti gli SMS
memorizzati nella SIM e cioč: scrivo il comando e lui risponde
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+39347xxxxxxx",,"03/03/20,13:44:22+04"
PROVA SMS
+CMGL: 2,"REC READ","+404",,"03/04/19,05:27:01+08"
VodafoneOmnitel: la carta scade tra 1 mese se non effettui una
ricarica.
+CMGL: 3,"REC READ","+39347xxxxxxx",,"03/05/12,10:55:28+08"
Prova
+CMGL: 4,"REC READ","+404",,"03/05/12,05:28:29+08"
Vodafone: la tua carta ricaricabile scade tra 7 giorni se non effettui
una ricarica.
OK
Io vorrei che la funzione listSMS mi ritorni un testo formattato come
segue:
Posizione 1
Tipo REC READ
Mittente +39347xxxxxxx
Data 03/03/20
Ora 13:44:22
Testo messaggio PROVA SMS
ovviamente per ogni sms letto
Ora... prendere sta roba per un solo messaggio lo so fare... me la
cavo con qualche InStr e qualche Mid$ ma quando non so quanti sono e
quanto sono lunghi i  messaggi come in questo caso come potrei
fare??!?

Ogmi messaggio inizia con:
"+CMGL"
vero?
Se e cosě scorri la stringa e ogni volta che incontri  "+CMGL" vuol dire 
che c'č un nuovo messaggio.
Suddividi la stringa in tante sottostringhe una per ogni messaggio e con 
un cotatore ne memorizzi il numero.
Crei una sub per l'eleborazione del singolo messaggio a cui passi le 
sottostringhe prima create.
Fammi sapere
Ciao Giň


 fare??!?
Io farei ritornare una struttura allocata dinamicamente
al posto di una stringa:
Public Type sListaSMS
    lPosizione as long
    strTipo as string
    strMittente as string
    strData as string
    strOra as string
    strTesto as string
End Type
Passerei la struttura alla funzione (che quindi diventerebbe una sub)
sub listSMS(mem as string, xListaSMS as sListaSMS)
Definirei la struttura dalla funzione che chiama listSMS con:
dim xListaSMS() as sListaSMS
[...]
redim xListaSMS(0)
listSMS(mem, xListaSMS)
[...]
E, dall'interno della listSMS allocherei dinamicamente la lista
do (finchè la lista non è finita...)
    ReDim Preserve xListaSMS(UBound(xListaSMS) + 1)
    [...]
    xListaSMS(UBound(xListaSMS) - 1).lPosizione = XXX
    [...]
loop

 Scusate ma non mi veniva un subject migliore...
"Divisione di stringa in più parti tramite separatore in più caratteri"?
Andrea

 dire che c'č un nuovo messaggio.
giusto, con vb6 puoi fafre il tutto con l'istruzione Split.
Salutoni
Sergio

 caratteri"?
[Battuta cattiva]
lelio potrebbe imparare da cervoorsetto a trovare i subject, ma cervoorsetto
potrebbe imparare da lelio a scrivere il "corpo" dei post
[fine battuta cattiva]
[seconda battuta]
Era ancora meglio "Dite che è il caso di usare uno split?", già che
c'eravamo
Salutoni
Sergio

 ha scritto nel messaggio
news:3ec1fa4...@news.virgilio.it...
[Strappa tutto]
Split su "+CMGL:" per dividere i messaggi
poi per ogni messaggio uno split silla virgola per prenderne i primi 5 campi

 per prenderne i primi 5 campi
E se il corpo del messaggio contiene virgole? ;)
Lokar
--
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
UGIdotNET - 
http://www.ugidotnet.org