Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

Funzioni visual basic e algoritmi

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Scusa ma sono stato preso da mille altre cose.
Ho buttato giu qualcosa al volo.
In realtà l'algoritmo è piu complesso di quello che dici, lo riporto sotto per riferimento.
Quello che ho messo giu io qui dovrebbe funzionare, tenendo conto dell'algoritmo vero che trovi sotto, ho fatto solo la parte nome cognome visto che per il resto dici di non avere problemi.
Vista l'ora tarda spero di non aver scritto caxxate Asd Happywide

[Immagine: 04a15-d4e3f522-8377-4e40-8c6e-f1d73a274643.png]

ecco il codice
    VBNET Programming
  1. Public Class frm_main
  2.  
  3. Private Sub btn_calcola_Click(sender As Object, e As EventArgs) Handles btn_calcola.Click
  4. Dim elencoVocali As String = "aeiou"
  5. Dim nome As String = txt_nome.Text.Replace(" ", "")
  6. Dim cognome As String = txt_cognome.Text.Replace(" ", "")
  7. Dim vocali As String
  8. Dim consonanti As String
  9.  
  10.  
  11. 'CALCOLO PER COGNOME
  12. For Each letter As Char In cognome
  13. If elencoVocali.IndexOf(letter) > -1 Then
  14. vocali += letter
  15. Else
  16. consonanti += letter
  17. End If
  18. Next
  19.  
  20. Dim cognomeCodice As String = Mid((consonanti + vocali), 1, 3)
  21. cognomeCodice = cognomeCodice.PadRight(3, "X")
  22.  
  23. vocali = ""
  24. consonanti = ""
  25.  
  26. 'CALCOLO PER NOME
  27. For Each letter As Char In nome
  28. If elencoVocali.IndexOf(letter) > -1 Then
  29. vocali += letter
  30. Else
  31. consonanti += letter
  32. End If
  33. Next
  34.  
  35. 'caso speciale, piu di 4 consonanti, rimuovo la seconda cosi prendo la 1 la 3 e 4
  36. If consonanti.Length >= 4 Then
  37. consonanti = consonanti.Remove(1, 1)
  38. End If
  39.  
  40. Dim nomeCodice As String = Mid((consonanti + vocali), 1, 3)
  41. nomeCodice = nomeCodice.PadRight(3, "X")
  42.  
  43. txt_codice.Text = cognomeCodice
  44. txt_codice.Text += nomeCodice
  45.  
  46. End Sub
  47. End Class



Riferimento:
Citazione:Caratteri indicativi del cognome
I cognomi che risultano composti da più parti o comunque separati od interrotti, vengono considerati come se fossero scritti secondo un'unica ed ininterrotta successione di caratteri.

Per i soggetti coniugati di sesso femminile si prende in considerazione soltanto il cognome da nubile.
Se il cognome contiene tre o più consonanti, i tre caratteri da rilevare sono, nell'ordine, la prima, la seconda e la terza consonante.
Se il cognome contiene due consonanti, i tre caratteri da rilevare sono, nell'ordine, la prima e la seconda consonante e la prima vocale.
Se il cognome contiene una consonante e due vocali, si rilevano, nell'ordine, quella consonante e quindi la prima e la seconda vocale.
Se il cognome contiene una consonante e una vocale, si rilevano la consonante e la vocale, nell'ordine, e si assume come terzo carattere la lettera x (ics).
Se il cognome e' costituito da due sole vocali, esse si rilevano, nell'ordine, e si assume come terzo carattere la lettera x (ics).

Caratteri indicativi del nome
I nomi doppi, multipli o comunque composti, vengono considerati come scritti per esteso in ogni loro parte e secondo un'unica ed ininterrotta successione di caratteri.

Se il nome contiene quattro o più consonanti, i tre caratteri da rilevare sono, nell'ordine, la prima, la terza e la quarta consonante.
Se il nome contiene tre consonanti, i tre caratteri da rilevare sono, nell'ordine, la prima, la seconda e la terza consonante.
Se il nome contiene due consonanti, i tre caratteri da rilevare sono, nell'ordine, la prima e la seconda consonante e la prima vocale.
Se il nome contiene una consonante e due vocali, i tre caratteri da rilevare sono, nell'ordine, quella consonante e quindi la prima e la seconda vocale.
Se il nome contiene una consonante e una vocale, si rilevano la consonante e la vocale, nell'ordine, e si assume come terzo carattere la lettera x (ics).
Se il nome e' costituito da due sole vocali, esse si rilevano nell'ordine, e si assume come terzo carattere la lettera x (ics).



digger
22/10/2014, 1:34
#13
Cerca


Messaggi in questa discussione
RE: Funzioni visual basic e algoritmi - da digger - 22/10/2014, 1:34



Utenti che stanno guardando questa discussione: 1 Ospite(i)