Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class frmSquareMatrix
- Const GRANDEZZAMAT As Integer = 26
- Public matrice(GRANDEZZAMAT - 1, GRANDEZZAMAT - 1) As ULong
- Private Sub getsumenabled() ' LT violazione del principio MaiuscoleEMinuscoleNonACasaccio
- cmdGetSum.Enabled = False
- If rdbRiga.Checked = True And Val(Len(txtQuery.Text)) = 1 Or rdbColonna.Checked = True And Val(Len(txtQuery.Text)) = 1 Then
- 'LT Caso mai: If Len(txtQuery.Text) = 1 And (rdbRiga.Checked Or rdbColonna.Checked) Then
- cmdGetSum.Enabled = True
- End If
- End Sub
- Private Sub chbMultiple_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles chbMultiple.CheckedChanged
- txtInput.Multiline = chbMultiple.Checked
- If txtInput.Multiline Then
- txtInput.Height = 150
- txtInput.ScrollBars = ScrollBars.Vertical
- End If
- End Sub
- Private Function cordinate(ByVal input As Char) 'LT coordinate
- Return Asc(UCase(input)) - 65
- End Function
- Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
- getsumenabled()
- End Sub
- Private Sub Cancella() 'LT Pulisci? Inizializza?
- Dim riga, colonna As Integer
- For riga = 0 To GRANDEZZAMAT - 1
- For colonna = 0 To GRANDEZZAMAT - 1
- matrice(riga, colonna) = 0
- Next
- Next
- End Sub
- Private Sub cmdClear_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdClear.Click
- Cancella()
- End Sub
- Private Sub cmdImport_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdImport.Click
- Dim ncar, riga, colonna As Integer
- Dim valorenuminput As ULong
- If Verificatesto(txtInput.Text) = True Then
- ncar = Len(txtInput.Text) - 2
- riga = Asc(UCase(Mid(txtInput.Text, 1, 1))) - 65 ' LT Hai già una funzione che fa questo, perché non usarla?
- colonna = Asc(UCase(Mid(txtInput.Text, 2, 2))) - 65
- valorenuminput = Val(Mid(txtInput.Text, 3, ncar))
- matrice(riga, colonna) = valorenuminput
- End If
- ' LT Se è abilitato il testo multilinea dovresti fare l'operazione riga per riga...
- txtInput.Text = ""
- txtInput.Focus()
- End Sub
- Private Function Verificatesto(ByVal dato As String)
- Dim risposta As Boolean
- Dim i As Integer
- If Len(dato) >= 3 And IsNumeric(Mid(txtInput.Text, 3, 3)) Then
- If UCase(Mid(dato, 1, 2)) >= "AA" And UCase(Mid(dato, 1, 2)) <= "ZZ" Then
- ' LT La stringa "A&', ad esempio, soddisfa la condizione ma non il criterio che vorresti impostare...
- For i = 3 To Len(dato)
- If (Mid(dato, i, 1) >= "0") And (Mid(dato, i, 1) <= "9") Then
- risposta = True
- Else
- risposta = False
- End If
- 'LT Problema: basta che l'ultimo carattere sia valido e risposta sarà vero
- Next
- End If
- End If
- Return risposta
- End Function
- Private Function Sommariga(ByVal riga As Integer)
- Dim somma As ULong = 0
- Dim colonna As Integer
- For colonna = 0 To GRANDEZZAMAT - 1
- somma = somma + matrice(riga, colonna)
- Next
- Return somma
- End Function
- Private Function Sommacolonna(ByVal colonna As Integer)
- Dim somma As ULong = 0
- Dim riga As Integer
- For riga = 0 To GRANDEZZAMAT - 1
- somma = somma + matrice(riga, colonna)
- Next
- Return somma
- End Function
- Private Sub txtQuery_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtQuery.TextChanged
- getsumenabled()
- End Sub
- Private Sub cmdGetSum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGetSum.Click
- cmdGetSum.Enabled = False
- Dim somma As ULong
- Dim i As Integer = cordinate(txtQuery.Text) ' LT perché i come nome di variabile?
- If rdbRiga.Checked Then
- somma = Sommariga(i)
- End If
- If rdbColonna.Checked Then
- somma = Sommacolonna(i)
- End If
- lblResult.Text = CStr(somma)
- End Sub
- Private Sub txtInput_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtInput.TextChanged
- cmdImport.Enabled = False
- If Verificatesto(txtInput.Text) = True Then
- cmdImport.Enabled = True
- End If
- End Sub
- Private Sub rdbRiga_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbRiga.CheckedChanged
- getsumenabled()
- End Sub
- Private Sub rdbColonna_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbColonna.CheckedChanged
- getsumenabled()
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement