Discussione su split string o regular expression

venerdì 23 novembre 2012 - 10.08

ridaria Profilo | Expert

da un apparato gsm arriva una stringa con delimitatore di campo "," che contiene una serie di dati, tra cui le coordinate lat. e long.

Prima soluzione:
separatore di campo, facciamo uno split e mettiamo i valori in un array.

Seconda opzione:
usare un pattern e cercare lat e long con una regular expression sapendo che il dato è formato da 9 caratteri e dopo i primi tre c'è un punto.

Cosa ne pensate?
Vorrei dei giudizi sull'una e sull'altra e motivazioni.


GRAZIE a tutti!

Riccardo D'Aria

bludev Profilo | Newbie

Lo preferisco l'approccio che fa usa delle regular expression, che se da un lato possono sembrare più complesse da definire, dall'altro sono molto potenti e permettono di estrapolare dalla stringa di partenza tutte le informazioni richieste. Utilizzando i "gruppi", il codice diventa molto pulito e deleghi al motore della classe Regex il compito di valutazione ed estrazione delle sotto-stringhe.
---
Fabio Turrin - Bludev - http://www.bludev.it/

ridaria Profilo | Expert

Grazie,

altre osservazioni?
Riccardo D'Aria

Vinsent Profilo | Senior Member

Se la formattazione della stringa è sempre la stessa, cioè i due valori hanno sempre la stessa posizione usando lo split, forse è sprecato usare le regular expression, nel senso che basterebbe qualcosa del genere:
Dim stringa As String = "campo 1,campo 2,campo 3,campo 4" Dim campo2 As String Dim campo3 As String Dim stringaSplit As String() = stringa.Split(New Char() {","c}) campo2 = stringaSplit(1) campo3 = stringaSplit(2) Console.WriteLine(campo2 & vbCrLf & campo3)
altrimenti penso sia più utile usare le regular expression.
Ciao

DomA Profilo | Expert

Ciao Riccardo,
>>arriva una stringa con delimitatore di campo "," che contiene una serie di dati, tra cui le coordinate lat. e long.
>>usare un pattern e cercare lat e long con una regular expression sapendo che il dato è formato da 9 caratteri e dopo i primi tre c'è un punto.
Siccome tu hai scritto "... contiene una serie di dati, tra cui..." e poi ancora "...sapendo che il dato è formato da 9 caratteri e dopo i primi tre c'è un punto"
La scelta per me ricade sulle regular expression così da poter ricavare solo latitudine e long.

A presto.

P.S. ingora il msg che segue (è nella firma).
Buon weekend

----------------------------------------------------------------------------------------------


Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

ridaria Profilo | Expert

GRAZIE ancora.

Altre osservazioni?


Riccardo D'Aria
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5