Trasmettitore sonoro morse

di il
13 risposte

Trasmettitore sonoro morse

Ciao ragazzi,sto facendo un nuovo trasmettitore sonoro,che ancora non è completo perché prima deve tradurre la stringa in testo normale in morse e poi fare quello che sta facendo ora.
Il codice sembra buono però mi dice che è sbagliato,potete spiegarmi il perché?

 String Testo;
            int b = 0;

            Console.Write("TESTO IN MORSE >> ");
            Testo = Console.ReadLine();

            if (Testo.Substring(b) == ".")
            {
                Console.Beep(300, 700);
            }
            else if (Testo.Substring(b) == "-")
            {
                Console.Beep(300, 900);
            }
            else if (Testo.Substring(b) == " ")
            {
                Thread.Sleep(500);
            }
            else if (Testo.Substring(b) == "")
            {
                Console.Write("Nessun codice morse inserito");
            }

            do
            {
                b = b + 1;

                if (Testo.Substring(b) == ".")
                {
                    Console.Beep(300, 700);
                }
                else if (Testo.Substring(b) == "-")
                {
                    Console.Beep(300, 900);
                }
                else if (Testo.Substring(b) == " ")
                {
                    Thread.Sleep(500);
                }
            }
            while (Testo.Substring(b) != null);

            Console.Write("Codice morse trasmesso");

            Console.ReadLine();

13 Risposte

  • Re: Trasmettitore sonoro morse

    Ma chi ti dice che è "sbagliato"? Che vuoi dire?
  • Re: Trasmettitore sonoro morse

    oregon ha scritto:


    Ma chi ti dice che è "sbagliato"? Che vuoi dire?
    Visual Studio.


    Eccezione non gestita di tipo 'System.ArgumentOutOfRangeException' in mscorlib.dll

    Informazioni aggiuntive: startIndex non può essere maggiore della lunghezza della stringa.
  • Re: Trasmettitore sonoro morse

    Devi *sempre* indicare nelle tue discussioni l'esatto messaggio d'errore che hai (e magari anche la linea in cui si verifica) e non dire genericamente "non funziona".

    L'errore in questione significa che stai usando male il metodo

    Substring

    perché il valore dell'argomento b, nella riga in cui si verifica l'errore, non è corretto.

    Cerca di individuare la riga e cerca di capire il perché il valore di b non va bene.
  • Re: Trasmettitore sonoro morse

    oregon ha scritto:


    Devi *sempre* indicare nelle tue discussioni l'esatto messaggio d'errore che hai (e magari anche la linea in cui si verifica) e non dire genericamente "non funziona".
    Ricorderò di farlo.

    oregon ha scritto:


    L'errore in questione significa che stai usando male il metodo

    Substring

    perché il valore dell'argomento b, nella riga in cui si verifica l'errore, non è corretto.

    Cerca di individuare la riga e cerca di capire il perché il valore di b non va bene.
    Ci proverò,grazie.
  • Re: Trasmettitore sonoro morse

    In realtà il codice che hai scritto non ha molto senso per fare quello che vorresti.
    Bisogna sicuramente ripensarci un po' su ma può essere un inizio.

    Quello che devi controllare bene è il ciclo e quando deve terminare. Ricorda che una stringa ha una lunghezza.
  • Re: Trasmettitore sonoro morse

    oregon ha scritto:


    In realtà il codice che hai scritto non ha molto senso per fare quello che vorresti.
    Bisogna sicuramente ripensarci un po' su ma può essere un inizio.

    Quello che devi controllare bene è il ciclo e quando deve terminare. Ricorda che una stringa ha una lunghezza.
    Si,ho quasi risolto,già ho preparato la form che converte la stringa in morse.Appena completo questo aggiungo un nuovo pulsante e lo collego.

    Il problema è che non riesco a fargliela leggere tutta,appena arriva ad un certo punto smette con i beep e da sempre lo stesso errore.
  • Re: Trasmettitore sonoro morse

    La stringa ha una lunghezza. Utilizzala in un ciclo for
  • Re: Trasmettitore sonoro morse

    oregon ha scritto:


    La stringa ha una lunghezza. Utilizzala in un ciclo for
    Potresti darmi una mano?
  • Re: Trasmettitore sonoro morse

    E te l'ho data ! Perché non provi ad utilizzare il suggerimento?

    La lunghezza di una stringa la ottieni con

    int lun = Testo.Length;

    vedi
    http://msdn.microsoft.com/it-it/library/system.string.length.aspx

    e poi una for la saprai scrivere, no?
  • Re: Trasmettitore sonoro morse

    oregon ha scritto:


    E te l'ho data ! Perché non provi ad utilizzare il suggerimento?

    La lunghezza di una stringa la ottieni con

    int lun = Testo.Length;

    vedi
    http://msdn.microsoft.com/it-it/library/system.string.length.aspx

    e poi una for la saprai scrivere, no?
    .Length non è il problema,il problema è proprio il ciclo,non riesco a prendere i caratteri singolarmente.
  • Re: Trasmettitore sonoro morse

    Il singolo carattere lo ottieni con

    Testo.Substring(ix, 1)

    in cui ix è l'indice della for che va da 0 a lun-1

    Studia questo

    http://msdn.microsoft.com/en-us/library/aka44szs.asp

    e fallo perché se non studi non ti puoi inventare le soluzioni!
  • Re: Trasmettitore sonoro morse

    oregon ha scritto:


    Il singolo carattere lo ottieni con

    Testo.Substring(ix, 1)

    in cui ix è l'indice della for che va da 0 a lun-1

    Studia questo

    http://msdn.microsoft.com/en-us/library/aka44szs.asp

    e fallo perché se non studi non ti puoi inventare le soluzioni!
    Studiato e risolto,grazie Oregon.
  • Re: Trasmettitore sonoro morse

    Wolt ha scritto:


    Studiato e risolto,grazie Oregon.
    Di nulla. E' sempre meglio risolvere con le proprie forze (e una spintarella ...).
Devi accedere o registrarti per scrivere nel forum
13 risposte