Dziwne błędy na innym komputerze

0

Witam. U mnie na komputerze wszystko jest w porządku (Mam Win7), piszę w MVS 2010 C#, Framework 4.0 . Kolega ma Win 8 i może to jest problem ale do końca nie jestem przekonany, po złapaniu całej funkcji w catch(Exception ex) pod ex.Message występuje komunikat "Nieprawidłowy format ciągu wejśćciowego", przy ex.Source wypluło mi komunikat (jest w załączniku). Nie wiem kompletnie co jest nie tak jeżeli u mnie wszystko działa a u kolegi występuje błąd. W skrócie opiszę metode, która się wywołuje.

Sprawdza teskt na stronie przez webbrowsera.
Konwertuje pierwszy string do inta
Pobiera znów tekst ze strony
Konwertuje do inta z funkcją replace razem
Później są zwykłe ify na podstawie pobranych danych i jeżeli są dobre to przechodzi na inną stronę ale do tego nawet nie dochodzi bo nawet jak są dobre to nie przechodzi na stronę, od razu wyskakuje błąd wyżej opisany i wszystko staje. 

Macie może pomysł dlaczego tak się dzieje?

Drugi problem jest tak samo dziwny, zaznaczony radiobutton przypisuje do zmiennej wartość 1, później przy wciśnięciu buttona wartość jest sprawdzana i jeżeli jest 1 to puszcza a jeżeli 0 to wyskakuje komunikat. Kolega zaznacza radio i wciskając button wyskakuje komunikat czyli wartość nie jest przypisywana(jak było 0 bez zaznaczonego radia to tak z zaznaczonym jest 0 gdzie powinno być 1), jak to jest możliwe w ogóle bo nie ogarniam za bardzo, u mnie wszystko działa perfekcyjnie a u niego zwykłe przypisane wartości w zmiennej szwankuje. To wina tego windowsa 8 czy co?

Z góry dzięki za pomoc!

0

Moja czarodziejska kula mówi mi że to nie wina systemu ale ustawień regionalnych.
Ale lepiej będzie jak dodasz sobie do aplikacji jakieś logi albo zainstaluj u kolegi VS i prze debuguj.

0

Z tą instalacją u niego VS i zaznaczaniem breakpointów w każdej linijce myślałem ale za dużo roboty mu na głowę zrzucę. Co do logów to mam je dodane ale teraz dodałem ich co każdą linijkę aby widzieć gdzie się zatrzyma. Dopiero jutro zobaczę jak to wyjdzie i dam znać, pierwszy raz z czymś takim spotkałem się.

0

Zamiast robić wpis do logu co każdą linijkę, przechwyć wyjątek na poziomie całej aplikacji i zapisz jego stracktrace.

0

Wpis do LOG'u pomógł bo program zatrzymuje się gdy ma skonwertować string do inta

string miejsce = pobranie z webbrowsera innertext. // pobiera dobrze
int asd = Convert.ToInt32(miejsce); // tu sie zatrzymuje i nic co po tym jest wpisane nie jest dodawane do LOG'u

Dlaczego na tym program się zatrzymuje?

0

zrób tak:

int iInt = int.TryParse(TwojString, out iInt) ? iInt : 0;
0
Mikołejko napisał(a):

Wpis do LOG'u pomógł bo program zatrzymuje się gdy ma skonwertować string do inta

string miejsce = pobranie z webbrowsera innertext. // pobiera dobrze
int asd = Convert.ToInt32(miejsce); // tu sie zatrzymuje i nic co po tym jest wpisane nie jest dodawane do LOG'u

Dlaczego na tym program się zatrzymuje?

@DibbyDum już dawno odpowiedział na Twoje pytanie. Twój kolega ma inne ustawienia regionalne niż te, z którymi działa program. Konwertuj liczby podając odpowiedni obiekt CultureInfoalbo niech kolega zmieni sobie ustawienia w panelu sterowania.

2

Czy wczytywana liczba to tylko cyfry, czy tam nie ma przypadkiem separatorów oddzielających setki tysiące itp. ?

0

Jest tam całkowity int, replace robię wcześniej.

int.tryparse - pomogło :D, dzięki wielkie.

A z tymi ustawieniami regionalnymi to jak jest ogólnie i na czym polega ta zmiana w panelu sterowania?

0

Panel Sterowania -> Region i język -> zakładka Formaty
Zmiana polega na zmianie ustawień regionalnych, czyli formatu daty, godziny, waluty, itd.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.