Piotrek1910 Opublikowano 29 Września 2013 Udostępnij Opublikowano 29 Września 2013 Witajcie, to znowu ja. Mam problem z porównaniem liczb po wczytaniu ich z pliku .ini. Tak wygląda nie cały kod: IniFile ini = new IniFile(@"data\update.dat"); IniFile ini2 = new IniFile(@"data\Settings.ini"); wersja = ini.Read("Update","V"); MyW = ini2.Read("Dane","V"); if (Convert.ToInt32(wersja) > Convert.ToInt32(MyW)) { label1.Text = "Nowa wersja jest dostępna!"; } I kiedy odpalam kod wyskakuje: Nieprawidłowy format ciągu wejściowego. Kombinuje już od 1 h i nadal to samo :/. Czy trzeba wykorzystać zapytania php? czy da się to uniknąć? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 29 Września 2013 Udostępnij Opublikowano 29 Września 2013 Co to za klasa IniFile? Może źle parsuje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piotrek1910 Opublikowano 29 Września 2013 Autor Udostępnij Opublikowano 29 Września 2013 Tak wygląda klasa IniFile: using System.IO; using System.Reflection; using System.Runtime.InteropServices; using System.Text; // Change the namespace to match your program's normal namespace namespace MyProg { class IniFile { public string Path; static string EXE = Assembly.GetExecutingAssembly().GetName().Name; [DllImport("kernel32")] static extern long WritePrivateProfileString(string Section, string Key, string Value, string FilePath); [DllImport("kernel32")] static extern int GetPrivateProfileString(string Section, string Key, string Default, StringBuilder RetVal, int Size, string FilePath); public IniFile(string IniPath = null) { Path = new FileInfo(IniPath != null ? IniPath : EXE + ".ini").FullName.ToString(); } public string Read(string Section, string Key = null) { StringBuilder RetVal = new StringBuilder(255); GetPrivateProfileString(Section != null ? Section : EXE, Key, "", RetVal, 255, Path); return RetVal.ToString(); } public void Write(string Section, string Key, string Value = null) { WritePrivateProfileString(Section != null ? Section : EXE, Key, Value, Path); } public void DeleteKey(string Key, string Section = null) { Write(Key, null, Section != null ? Section : EXE); } public void DeleteSection(string Section = null) { Write(null, null, Section != null ? Section : EXE); } public bool KeyExists(string Key, string Section = null) { return Read(Key, Section).Length > 0 ? true : false; } } } Raczej nie ma w nim błędu. Zmieniłem w Read i Write kolejność argumentów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 29 Września 2013 Udostępnij Opublikowano 29 Września 2013 wersja = ini.Read("Update","V");[code] Co zwraca Ci do "wersja"? Tresc bledu wskazuje na to, ze cos z tym moze byc nie tak. Sorki za brak polskich znakow. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piotrek1910 Opublikowano 29 Września 2013 Autor Udostępnij Opublikowano 29 Września 2013 Normalnie string i null: string wersja = ""; A i zapomniałem wspomnieć, że program wysypuje się na: if (Convert.ToInt32(wersja) > Convert.ToInt32(MyW)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 29 Września 2013 Udostępnij Opublikowano 29 Września 2013 No dobra, ale mi chodzilo o to co zawiera PO wykonaniu ini.Read(... Wydrukuj na konsoli albo sprawdz w debuggerze. Jesli zawiera null to nie dziwie sie ze nie przechodzi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Września 2013 Administratorzy Udostępnij Opublikowano 30 Września 2013 Skorzystaj z TryParse. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piotrek1910 Opublikowano 30 Września 2013 Autor Udostępnij Opublikowano 30 Września 2013 @Utermiko: Nic nie ma po ini.Read(... oprócz porównania liczb. @Gnysek: Dzięki, na pewno mi się przyda. @Edit: Już wiem gdzie był błąd. 1.W pliku ini było 1.0 a powinno być 1,0. 2.Deklarowałem liczbe int zamiast double. Dzięki wszystkim za pomoc. Temat do zamknięcia. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się