Wątek przeniesiony 2018-03-15 16:45 z Oceny i recenzje przez furious programming.

Program szyfrujący – portowanie kodu z C++ do C# i wyjątek

0

Cześć, jakiś czas temu napisałem program szyfrujący w C++, chciałem zrobić taki sam w C# i wyskakuje mi następujący błąd przy użyciu mojej funkcji Deszyfruj();

System.ArgumentOutOfRangeException
  HResult=0x80131502
  Message=Indeks był spoza zakresu. Musi mieć wartość nieujemną i mniejszą niż rozmiar kolekcji.
Nazwa parametru: index
  Source=mscorlib
  Ślad stosu:
   w System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   w System.Collections.Generic.List`1.get_Item(Int32 index)
   w octigma.Szyfrownica.Deszyfruj() w C:\Users\Takado\Desktop\dotNET\C#\Octigma\octigma\octigma\Program.cs:wiersz 688
   w octigma.Program.Main(String[] args) w C:\Users\Takado\Desktop\dotNET\C#\Octigma\octigma\octigma\Program.cs:wiersz 39

Czy dobrze rozumiem, że próbuję dosięgnąć jakiegoś elementu z poza tablicy, przez trefnie dobrany iterator? jeśli tak to nie mogę za chiny tego znaleźć. dodam że raz na jakiś czas zdanie udaje się poprawnie zaszyfrować.

Link do C#

Link do tematu z działającym programem w C++

Uprzejmie proszę o pomoc, gdyż moim ostatecznym pomysłem jest napisanie tego od nowa, co i tak uczynię, ale chciałbym najpierw doprowadzić to do działania.

1

No gdzieś tam wartość licznik w zdanie_sz[licznik] jest równa rozmiarowi zdanie_sz ale wątpię, że komuś będzie się chciało debugować za Ciebie. Zapoznaj się z ASCII to skrócisz kod o połowę. No i jak nie debugowałeś to koniecznie zacznij.
edit:
No i najważniejsze - ucz się z jakiegoś porządnego kursu ;)

0

naprawiłem :D ale "taśmą klejącą" . mianowicie, na chlopski rozum dołożylem 1 element do listy zdanie_sz zeby cokolwiek tam sięga nie wywałało programu i program działa.... rozszyfrowuje za każdym razem. czy ktoś potrafi teraz wyjaśnić problem? ;p

dodałem linijke zdanie_sz.Add(999); zaraz przed szyfrowaniem, co dziwniejsze nie widze zeby powodowalo to jakies bledy w odczycie zaszyfrowanej wiadomosci.

edit : oczywiście, że powoduje :/ myślę, że napiszę od nowa.

0

myślę, że znalazłem odpowiedź pisząc nową wersję. Widzę, że w C# nie można tak beztrosko sobie dodać chara do stringa i go nadpisac jak w C++. a mój program zakładał, że ile%3==0, poniewaz przy szyfrowaniu jesli nie byl, to sobie mial dopisac znaki. a tego nie robił.

1 użytkowników online, w tym zalogowanych: 0, gości: 1