|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
[vb 2008] Aiuto programma
salve popolo di programmatori di sistemi operativi da far invidia a vista..potreste aiutare un umile novellino alle prime armi cn vb??
allora io sto cercando di fare il mio primo programmino diciamo serio, cioè ke abbia un codice piu o meno degno d essere kiamato tale. il mio progetto e su un converter di dati binario<=>alfabeto latino, cioè una sorta di crittografia..e quindi ho messo due textbox e un bottone..adx vorrei mettere la struttura for per far elaborare una lettera alla volta. ecco ke sorge il primo problema. come imposto la riga di for per mettere la lunghezza del testo?? eco come ho messo: ' Dim I as integer for I = 0 to ** ... next' |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Codice:
Dim i As Integer
For i = 0 To TextBox1.Text.Length - 1
MsgBox(TextBox1.Text(i))
Next
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
Ehi, non usare abbreviazioni da sms, per favore. Perdiamo più tempo a decifrare il tuo messaggio che a risolvere il problema... ok?
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
ecco ho messo questo codice:
Codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
For i = 0 To TextBox1.Text.Length - 1
Next
If i = "a" Then
ListBox1.Text = ListBox1.Text + "000000"
End If
If i = "b" Then
ListBox1.Text = ListBox1.Text + "000001"
End If
End Sub
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
è lo stesso. in una finestra sotto, dove vengono visualizzati gli errori, mi esce:
"A first chance exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll" |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
In effetti ci sono parecchi errori.
1. L'Invalid Cast Exception sorge quando tenti di confrontare il contatore i con un tipo String ( o Char... ). Vabbeh che VB è più tollerante riguardo le conversioni implicite dei tipi, ma non fino a questo punto ! Io ti avevo infatti suggerito : Codice:
If TextBox1.Text(i) = "a" Then ... End If 3. Usi "+" anzichè "&" per concatenare ( errore lieve dato che VB capisce anche il +, ma & è più specifico del linguaggio ). 4. Infine l'uso della ListBox non mi è chiaro. Usi .Text che ritorna la String dell'elemento corrente selezionato in lista, e tenti di modificarlo... Forse intendevi .Items.Add()...
|
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
si marco ho provato come dicevi te però adesso mi esce come errore:
Argument not specified for parameter 'item' of 'Public Function Add(item As Object) As Integer'. |
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
no scusa avevo sbagiato io. comunque ho provato con items.add() ma mi esce di nuovo l'errore di prima cioè:
A first chance exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Prova semplicemente a spiegare cosa devi farci con la TextBox e la ListBox.
A che ti serve la ListBox ? Cosa vuoi ottenere ? |
|
|
|
|
|
#12 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
allora vi spiego: si mette il testo nel textbox1 poi si clikka sul pulsante e converte il testo in una serie di 1 e 0 che dovrebbero venire visualizzati nella listbox1. non so se mi avete capito.
se mi spiegate vi posto una foto Ultima modifica di svenskajagare : 04-03-2009 alle 16:49. |
|
|
|
|
|
#13 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
ecco ho allegato il file. ora potete vedere meglio
|
|
|
|
|
|
#14 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
e questo è il codice dopo i vostri consigli:
Codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
For i = 0 To TextBox1.Text.Length - 1
If i = "a" Then
ListBox1.Items.Add("000000")
End If
If i = "b" Then
ListBox1.Items.Add("000001")
End If
Next
End Sub
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Semmai questo : Codice:
Dim i As Integer
For i = 0 To TextBox1.Text.Length - 1
If TextBox1.Text(i) = "a" Then
ListBox1.Items.Add("000000")
End If
If TextBox1.Text(i) = "b" Then
ListBox1.Items.Add("000001")
End If
Next
Potevi semplicemente scrivere in italiano cosa stavi cercando di fare. La Form di per sè non spiega nulla... |
|
|
|
|
|
|
#16 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
grazie mille Marco!!!però poi mi sono accorto che con la listbox non funzionava come doveva e quindi ho messo una textbox in modo che venga tutto un insieme di 0 e 1. E ho messo un button per pulire la textbox. Adesso però dovrei far selezionare tutto il contenuto della textbox2 schiacciando il pulsante. qual è il codice per questa operazione??
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
|
|
|
|
|
|
#18 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
ok grazie mille. il form alfabeto <=> binary è finito. adesso mi manca solo l'altro che praticamente deve fare l'inverso cioè da una serie di 1 e 0 deve risalire a caratteri alfanumerici. credo che occorra sempre una struttura for ma come faccio a far prendere in considerazione 6 cifre alla volta?? ad esempio 000000000001 devono essere divise in 000000 e 000001 e poi vengono convertite in "a" e "b". Marco, sapiente Marco...
|
|
|
|
|
|
#19 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
Codice:
Dim i As Integer
For i = 0 To TextBox1.TextLength Step 6
If TextBox1.Text(i) = "000000" Then
TextBox2.Text = TextBox2.Text + "a"
End If
If TextBox1.Text(i) = "000001" Then
TextBox2.Text = TextBox2.Text + "b"
End If
Next
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Usa il metodo subString(Integer,Integer) di String
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:16.




















