Streamreader e marcatori

lunedì 13 febbraio 2006 - 11.11

new Profilo | Junior Member

Ciao a tutti!

Devo leggere da un file di testo delle stringhe di dati composte circa così:

<skj>gjdgjdf78.78439h ;4 4824 [ kfkhgfdgkd

e devo fre in modo che il contenuto della stringa prima del carattere "[" mi vada in una Txtbox e il pezzo dopo in un'altra TXT box.
P.S. il carattere "[" non va visualizzato da nessuna parte.

Come faccio??
Grazie

Brainkiller Profilo | Guru

>Ciao a tutti!
>Devo leggere da un file di testo delle stringhe di dati composte
>circa così:
><skj>gjdgjdf78.78439h ;4 4824 [ kfkhgfdgkd
>e devo fre in modo che il contenuto della stringa prima del carattere
>"[" mi vada in una Txtbox e il pezzo dopo in un'altra TXT box.
>P.S. il carattere "[" non va visualizzato da nessuna parte.
>Come faccio??
>Grazie

Ciao,
o fai manualmente usando le funzioni per l'analisi delle stringe con IndexOf per vedere dov'è la posizione del carattere [ ancora IndexOf per vedere dov'è la fine ] e poi SubString per estrarre la stringa fra [e ].
Oppure con una Regular Expression.

ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

new Profilo | Junior Member

Grazie per la risposta.
Attenzione io NON HO [ e ] ma solo [ quindi non ho un carattere fisso di chiusura.
Che mi sconsigli di fare??
Avevo pensato di usare PEEk ma sinceramente non so bene nemmeno io come.
Se puoi mi posti del codice di esempio .
Grazie

new

Brainkiller Profilo | Guru

>Grazie per la risposta.
>Attenzione io NON HO [ e ] ma solo [ quindi non ho un carattere
>fisso di chiusura.
>Che mi sconsigli di fare??
>Avevo pensato di usare PEEk ma sinceramente non so bene nemmeno
> io come.
>Se puoi mi posti del codice di esempio .
>Grazie

Mi è venuto in mente che puoi fare anche così.
Utilizzando il metodo Split() della stringa, puoi pasare il carattere '[' a questo punto cosa succede ?
Il metodo split suddivide la strigna in più parti, usando come delimitatore di stringa il [. Quindi utilizzandola sulla tua stringa il metodo split ritornerà un Array se non erro di due elementi, l'elemento 0 sarà la parte prima di [ e l'elemtno 1 la parte seguente.
ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

new Profilo | Junior Member

Ci ho provato ma niente da fare, mi riporta sempre il valore DOPO il simbolo e non quello prima!!
In oltre tieni presente che devo "pescare" circa 12 stringhe all'intero del file.txt , spezzarle e per ogniuna riempire due diverse textbox.
Se puoi postarmi del codice di esempio ti ringrazio.
io ho fatto così:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim sr As New IO.StreamReader("c:\\PROVA.txt")
Dim stringa As String
Dim s() As String
Dim i As Integer
i = 0
stringa = sr.ReadLine
s = Split(stringa, "[")

For i = 0 To UBound(s) ' sia se metto (s) che (s,2) mi ridà sempre il valore DOPO [
Label1.Text = s(i)
Next

End Sub



new

Brainkiller Profilo | Guru

Dim testo As String
Dim arr As String()
testo = "alfabeta[gammadelta"
arr = testo.Split("[")
Console.WriteLine("PRIMA PARTE: {0}", arr(0))
Console.WriteLine("SECONDA PARTE: {0}", arr(1))

allora testo è la tua stringa, vedi che contiene il carattere [.
Se io eseguo questo codice questo è l'output:

PRIMA PARTE: alfabeta
SECONDA PARTE: gammadelta

Come vedi viene stampate la parte prima del [ e anche qeulla dopo.

ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

new Profilo | Junior Member

ok funziona grazie

new
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5