Vai al contenuto
PLC Forum


Copiare Solo Determinati Caratteri - con il codice VB6 come si fa?


Brothers

Messaggi consigliati

Con un istruzione come questa

Text2.Text = (Right(Text1.Text, 10))

copio da Text1 a Text2 i primi 10 caratteri a destra

Ma se io voglio copiare solo un carattere che non sia il primo

per esempio il quinto o il settimo o l'ultimo

Per esempio copiare da Text1

http://www.plcforum.it/

a Text2 Solo

www.plcforum.it

Qualcuno sa come si fa?

Ciao

Link al commento
Condividi su altri siti


Brothers cito a memoria e non sono sicuro della completa correttezza della sintasi, esiste l'istruzione $MID(x,y) che ti permette di prelevare un certo numero di caratteri a partire da un dato carattere da sx(?). COmunque $MID è sicuro, quindi ti basta consultare l'help in linea per verificarne la sintassi.

Link al commento
Condividi su altri siti

Dim Testo As String

Dim Inizio As String

Dim Lunghezza As String

Dim Risultato As String

Testo = Text1.Text

Inizio = 3

Lunghezza = 1

Risultato = Mid(Testo, Inizio, Lunghezza)

Text2.Text = Risultato

Link al commento
Condividi su altri siti

OK per MID, ma dovresti andargli a dire anche da dove estrarre il dato :)

DestTextItem.Caption = (Mid$(SourceTextItem.Caption,varStart, varLenght));

P.S.: Ooops, dago mi ha preceduto. Pazienza, ormai l'avevo postato.

Modificato: da nll
Link al commento
Condividi su altri siti

con le istruzioni di dago_ da

http://www.plcforum.it/

sono arrivato qui:

www.plcforum.it/

Ora dovrei togliere la "/"

Non essendo sempre e solo

www.plcforum.it/

quello che verrà scritto nella TextBox

dovrei scrivere un codice che interrompa la lettura al primo carattere "/" incontrato.

Ho provato a manipolare quel codice Dim ma non sono arrivato a niente.

Togliere l'ultimo carattere non servirebbe perche a volte di "/" possono essercene due o più in un indirizzo però potrebbe essere un (mio) passo avanti.

Link al commento
Condividi su altri siti

Devi crearti un loop che testa un carattere alla volta fino al riconoscimento di "/". Ad ogni ripetizione incrementi il valore di lunghezza, partendo da lunghezza = 1.

Poi applichi le istruzioni precedenti.

Link al commento
Condividi su altri siti

Brothers, probabilmente come lunghezza hai lasciato un carattere di troppo, prova a riscrivere il codice diminuendo di un carattere il parametro "Lunghezza"

Il comando Mid$() estrae una sottostringa secondo le istruzioni che gli dai all'interno delle parentesi, se gli dici di estrarti 16 caratteri, lui te ne estrae 16, non 15.

Attenzione al carattere di partenza, secondo il linguaggio utilizzato il primo carattere non è 1, ma 0, e se utilizzi un numero negativo parte a contare da destra.

Ho visto ora il messaggio di Livio: quello riguarda un altro tipo di analisi del testo, quando non conosci in anticipo, o non puoi ricavare con certezza, la lunghezza del testo da estrarre e la sua posizione nella stringa, ma sai di sicuro cosa cercare come riferimenti di inizio e fine della sottostringa. Il metodo è più lento rispetto al comando Mid$(), ma a volte è il più efficace, dipende dalle tue esigenze.

Modificato: da nll
Link al commento
Condividi su altri siti

Dim Testo As String

Dim Posizione As Integer

Dim Inizio As Integer

Testo = "www.plcforum.it/"

Inizio = 1

Posizione = InStr(Inizio, Testo, "/")

if Posizione > 2 Then Testo = Mid(Testo, 1, Posizione - 1)

Modificato: da dago_
Link al commento
Condividi su altri siti

Grazie alle vostre spiegazioni ragazzi comincio a capirci qualcosa. :)

dago_ sei fortissimo ;) (e molto sintetico )

(Ho usato

Testo

come risultato :D )

Ciao

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...