Problema con semplice programma

di il
3 risposte

Problema con semplice programma

Buon giorno a tutti, inizio con il presentarmi.

Sono uno studente di ingegneria navale (21 anni) che in questo periodo sta preparando l'esame di informatica da sostenere a breve.

Provando a fare delle prove d'esame una di queste (o meglio una sua parte) consisteva nello scrivere un comando che, data una stringa (immessa per mezzo di una textbox) restituisse in un' altra textbox la medesima stringa senza gli spazi, il tutto deve essere effettuato automaticamente dal programma senza premere alcun tasto.

Quello che ho scritto io è riportato qui sotto:

Private Sub Text1_Change()
Dim stringa() As String
Dim lettera As String

stringa = Split(Text1.Text, " ")

If UBound(stringa) = -1 Then
Text2.Text = ""
Else:
lettera = stringa(UBound(stringa))
End If

Text2.Text = Text2.Text + lettera


Ora questo programma funziona benissimo finchè la stringa in entrata si allunga (cioè continuo a scrivere), ma nel momento in cui voglio cancellare qualcosa il programma non torna anche lui indietro eliminando le parti necessarie dalla seconda textbox.

Come di potrebbe modificare il programma per ovviare a tale problema?




Secondo dubbio di natura teorica.
Sempre nell'ambito dello stesso programma (ma in una parte completamente diversa da quella sopra) mi capita di lavorare con numeri discretamente grandi, ed ho scoperto, per sbaglio provando, che se la variabile è dichiarata come integer oltre un certo limite il programma va in overflow, mentre se la medesima variabile la dichiaro come double il problema non si pone.
Come mai?

Ringrazio in anticipo chiunque riesca ad aiutarmi

3 Risposte

  • Re: Problema con semplice programma

    Per il primo problema, utilizza unicamente la funzione

    Replace

    nella textbox.

    Per la seconda questione, tu conosci la differenza tra un tipo di dato Integer e un Float?

    P.S. Parli di VB6 ? VBA ?
  • Re: Problema con semplice programma

    La differenza fra i due dati in realtà non la conosco, la mia conoscenza si limita a come dichiarare una variabile (integer, string, double) a seconda dei casi, ma non so "cosa ci sia dietro".

    Comunque faccio riferimento a visual basic 6, su cui dovrò sostenere l'esame.
  • Re: Problema con semplice programma

    Ciao, ti ho preparato il codice sorgente:

    Apri l'ide, poi crea in fase di designer 2 oggetti Text, con proprietà del nome:
    TestoSorgente
    TestoDestinazione

    Nella parte del codice dell'evento "change" della casella di testo scrivi la procedura per la costruzione della stringa
    
    '=====================================================
    '"Elaborazione del testo senza spazi e senza pulsanti"
    'per un aiuto ad uno studente universitario
    '
    'By Cursore 8-09-2013 diploma III media inferiore.....
    '=====================================================
    Private Sub TestoSorgente_Change()
    Testocostruito = "" 'Testo VUOTO
    CarattereInterrogato = "" 'Carattere VUOTO
    
    'Prevenzione errore per il testo vuoto della prima casella di testo
    '...se il testo sorgente non è vuoto allora procedi (il MID da errore per le stringhe di lunghezza 0 perchè cerca 1 carattere
    If TestoSorgente.Text <> "" Then
       'Ciclo di iterazione per la costruzione della stringa senza il carattere spazio
       For X = 1 To Len(TestoSorgente.Text) - 0
           'Intercetto il carattere nella sequenza dei caratteri della stringa
           CarattereInterrogato = Mid(TestoSorgente.Text, X, 1) 'Nota
           If CarattereInterrogato <> " " Then
              'Costruisco la stringa elaborata senza spazi
              Testocostruito = Testocostruito & CarattereInterrogato
              'Assegazione del nuovo testo alla casella di testo di destinazione
              TestoDestinazione.Text = Testocostruito
           End If
       Next X
    End If
    End Sub
    '=====================================================
    'Test:
    '"abc def ghi lmo pqr 1 2 3 4 5"
    'Risultato:
    '"abcdefghilmopqr12345"
    
    Per quanto riguarda il secondo tuo problema con le variabili numeriche:
    Single è più piccolo di Double
    Integer è più piccolo di Long

    Decimali = Single --> esempio 10,05
    Decimali lunghi = Double --> esempio 10,000005
    Interi senza virgola = Integer ---> esempio +- 36000
    Interi lunghi senza virgola = Long ---> esempio -123456789

    Pace e bene!
Devi accedere o registrarti per scrivere nel forum
3 risposte