PDA

Visualizza la versione completa : [VB] dividere stringhe


magnus
04-12-2002, 13:08
Come posso dividere una stringa del tipo:

Luca Monte
Piero Esposito

in due stringhe diverse?

stringa1=Luca
stringa2=Monte

stringa1=Piero
stringa2=Esposito

Grazie.

naighes
04-12-2002, 13:19
Scusa, ma che linguaggio di programmazione usi?
In java potresti utilizzare lo StringTokenizer, in altri linguaggi non so, non li conosco.

magnus
04-12-2002, 13:21
Scusate uso VB

ChReAn
04-12-2002, 13:37
Se conosci la lunghezza delle due sottostringhe puoi usare left e right, che estraggono n caratteri da una stringa partendo da sinistra o da destra, rispettivamente.

Left (Str, Len)
Right (Str, Len)

Dove str la stringa da cui estrarre Len caratteri.

Se invece vuoi separare due stringhe inframezzate da un carattere (esempio: Nome-spazio-Cognome), usa la Instr per conoscere la posizione del carattere di divisione:

Pos = Instr (str, car)

e poi in base alla posizione estrai le sottostringhe tramite left e right.

ChReAn
04-12-2002, 13:40
Originariamente inviato da okirit
stringa="Mario Rossi"
a=0:bx="":for i=1 to len(stringa1)
if mid(stringa,1,i)=" " then
a=a+1
s(a)=bx
bx=""
else
bx=bx+mid(stringa,1,i)
endif
next i
a=a+1
s(a)=bx

label1.caption=s(1)
label2.caption=s(2)


ciao

Scusa, ma mi pare un po' macchinoso scriversi una funzione che simuli due chiamate a funzioni gi disponibili in vb... :master:

laccamen
04-12-2002, 14:21
Originariamente inviato da magnus
Come posso dividere una stringa del tipo:

Luca Monte
Piero Esposito

in due stringhe diverse?

stringa1=Luca
stringa2=Monte

stringa1=Piero
stringa2=Esposito

Grazie.

usa la funzione split di vb

magnus
04-12-2002, 14:26
Grazie...:)

sebamix
04-12-2002, 18:51
Originariamente inviato da okirit
questo un esempio concreto per l'amico in vb, poi lui che deve lavorarci su.

Infatti mi aspetto un'altro post del tipo...............
e se si chiama "Mario Rossi Carmelo" ???

a dopo..............



dim strSplit() as string
dim i as integer
strSplit=split("Marco Rossi Carmelo Luciano Del Ponte", " ")
for i = lbound(strsplit) to ubound(strsplit)
msgbox strSplit(i)
next i


:ciauz:

Loading