Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[VB6] Prendere in considerazione solo una parte

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[VB6] Prendere in considerazione solo una parte

Messaggioda Mikleman » mer dic 02, 2009 10:04 pm

Ciao a tutti,
oggi vi pongo un quesito a cui non so rispondere [uhm]

Se io nel text1 ho una stringa di questo tipo:
Codice: Seleziona tutto
Bfhttp://www.habbo.com/client/private/2088589/id


E' da considerare anche che la stringa potrebbe cambiare e diventare:
Codice: Seleziona tutto
Bfhttp://www.habbo.com/client/private/12/id


Il numero delle cifre è quindi variabile ma qualsiasi cosa succeda rimarranno sempre numeri naturali.
La domanda è :
come faccio ad ordinare a vb6 di prendere in considerazione solamente ciò che sta tra Bfhttp://www.habbo.com/client/private/ e /id ?


Idee?
Avatar utente
Mikleman
Aficionado
Aficionado
 
Messaggi: 87
Iscritto il: lun mar 30, 2009 10:37 pm

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda M@ttia » mer dic 02, 2009 11:31 pm

Ora sono un po' arrugginito sulla sintassi, ma basta che gli dici di "tagliare/ignorare" i primi 38 caratteri della stringa (ovvero Bfhttp://www.habbo.com/client/private/) e gli ultimi 5 (ovvero /id).
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda Mikleman » gio dic 03, 2009 10:09 am

M@ttia ha scritto:Ora sono un po' arrugginito sulla sintassi, ma basta che gli dici di "tagliare/ignorare" i primi 38 caratteri della stringa (ovvero Bfhttp://www.habbo.com/client/private/) e gli ultimi 5 (ovvero /id).

Eggià ma il problema è che non conosco la sintassi giusta [acc2]


EDIT
ho risolto [^]

Private Sub Command1_Click()
Dim stringa As String
stringa = Text1.Text
Text2.Text = Mid(stringa, 39, 7)
End Sub

Per chi avesse il mio stesso problema può dare uno sguardo qui
http://www.mrwebmaster.it/visual-basic/ ... e_170.html
Avatar utente
Mikleman
Aficionado
Aficionado
 
Messaggi: 87
Iscritto il: lun mar 30, 2009 10:37 pm


Re: [VB6] Prendere in considerazione solo una parte

Messaggioda Silver Black » gio dic 03, 2009 12:53 pm

Bene tu abbia già risolto. Per le stringhe è importante saperle manipolare con le funzioni Left, Right, Mid, InStr.
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda M@ttia » gio dic 03, 2009 1:09 pm

Mikleman ha scritto:Text2.Text = Mid(stringa, 39, 7)
Così facendo però prendi le 7 lettere/numeri dopo il 39° carattere, ma dal tuo esempio sopra il numero aveva lunghezza variabile (non sempre 7 cifre)...
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda Mikleman » gio dic 03, 2009 1:12 pm

Diamine hai ragione
non so perché ho pensato che il codice prendesse in considerazione le prime e le ultime lettere (vedi 37,7) e pensavo che dovessi inserire due caratteri in più a causa dei caratteri speciali :S

Umh.. allora come potrei fare? Esiste qualche comando che obbliga vb6 a prendere in considerazione solo i numeri che sono presenti in una stringa?


EDIT

risolto xD

Codice: Seleziona tutto
Private Sub Command1_Click()
Text1.Text = FilterString(Text1.Text, "1234567890")
End Sub


Bisogna però usare un modulo con il seguente codice:

Codice: Seleziona tutto
Function FilterString(Text As String, validChars As String) As String
Dim i As Long, result As String
For i = 1 To Len(Text)
If InStr(validChars, Mid$(Text, i, 1)) Then
result = result & Mid$(Text, i, 1)
End If
Next
FilterString = result
End Function
Avatar utente
Mikleman
Aficionado
Aficionado
 
Messaggi: 87
Iscritto il: lun mar 30, 2009 10:37 pm

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda Andy94 » gio dic 03, 2009 2:20 pm

Stavo pensando (ma tu potresti anche già aver risolto e quindi non tenere questa cosa nemmeno in considerazione): perché non splitti la stringa all'interno di un array (prendendo come carattere divisore la /) e poi consideri sempre l'elemento numero X (visto che la posizione di quanto ti interessa si trova sempre allo stesso punto?
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda Mikleman » gio dic 03, 2009 3:36 pm

Se usassi lo split di / non otterrei un risultato come questo?

Bfhttp:
www.habbo.com
client
private
2088589
id
Avatar utente
Mikleman
Aficionado
Aficionado
 
Messaggi: 87
Iscritto il: lun mar 30, 2009 10:37 pm

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda Andy94 » gio dic 03, 2009 3:59 pm

Esatto. Ogni volta che devi recuperare l'ID che ti serve, gli dici sempre di considerare l'elemento numero 4 dell'array (perché parte da 0).
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [VB6] Prendere in considerazione solo una parte

Messaggioda Mikleman » gio dic 03, 2009 5:26 pm

Andy94 ha scritto:Esatto. Ogni volta che devi recuperare l'ID che ti serve, gli dici sempre di considerare l'elemento numero 4 dell'array (perché parte da 0).

Sì il risultato è identico :) però preferisco usare il modulo che tanto mi consente di usare una sola stringa

Private Sub Command1_Click()
Dim stringa As String
Dim s() As String
Dim i As Integer
i = 0
stringa = Text1.Text
s = Split(stringa, "/")
For i = 0 To UBound(s)
Text2.Text = s(5)
Next
End Sub
Avatar utente
Mikleman
Aficionado
Aficionado
 
Messaggi: 87
Iscritto il: lun mar 30, 2009 10:37 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising