Hi,
bist Du sicher, dass es da deppert, wo Du's aufgezeigt hast - oder doch erst
in der n�chsten Zeile?? Zumindest passt die Fehlermeldung nicht zu den 3
Zeilen Code, sondern eher zu eine Substring()-Anweisung oder �hnlichem..
Also. Nach diesen Zeilen
int numCustomers = numOfCustomers;
float tmpFirstNcPage = ((float)numCustomers/addrGrid.PageSize);
int commaPosition = tmpFirstNcPage.ToString().IndexOf(',');
steht in commaPosition auf Win2003 -1 statt einer Zahl > -1.
Mal abgesehen davon, dass Du vor der Verwendung einer Variable als
Startindex, diesen IMMER erstmal �berpr�fen solltest(*g*), hast Du hier ein
klassisches Regional-Einstellungs-Problem. Ich sch�tze, Dein
Windows2003-System ist ein Pro-Englisch-Amerikanisch Eingestelltes...
float.ToString() liefert einen String, der sich an die Regionseinstellungen
der Rechners richtet. Und manchmal ist das Komma "," das
Tausendertrennzeichen und der Punkt "." Dezimaltrennzeichen, mal ist es
umgekehrt. M�glich (und nicht un�blich) sind auch ganz anderes Zeichen.
Die Einstellungen zwischen Deutsch(Deutschland), Deutsch(Schweiz) und
Englisch(Gro�britannien) k�nnten unterschiedlicher nicht sein.
In dem Fall gibt's wohl einfach kein Komma. Du h�ttest �blere Fehler haben
k�nnen, wenn Die Zahl entsprechend gro� und das Tausendertrennzeichen ein
Komma "," gewesen w�re... Naja. Fakt ist, wenn er das Zeichen nicht findet
ist der R�ckgabewert eben -1.
Statt nach einem Komma zu suchen kannst Du also nach dem eingestellten
Dezimaltrennzeichen suchen... Zu finden unter:
Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator
Wenn Du aber - wovon ich ausgehe - den Ganzahlwert der Dezimalzahl brauchst,
dann verwende lieber Math.Ceiling(negative Zahl) bzw. Math.Floor(positive
Zahl).
Gute Nacht, Wolfgang ;)
http://www.vbwelt.de/
> -----Urspr�ngliche Nachricht-----
> Betreff: [CSharp.net] myString.IndexOf() unter Win2003
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi
>
> Ist doch zum gegen die Wand rennen :-(
>
> Ich habe hier auf meinem Entwicklungsrechner (Win XP SP1, .NET 1.1) eine
> Applikation am laufen und die funktioniert auch wunderbar. Voller Freude
> wollte ich das ganze jetzt auf unserem "Test-Produktivsystem" (Win2003,
> .NET 1.1) installieren, und siehe da - folgende Codezeile funktioniert
> hier nicht (bei mir lokal nach x-tausendfachem Nachpr�fen 100% schon).
>
> int numCustomers = numOfCustomers;
> float tmpFirstNcPage = ((float)numCustomers/addrGrid.PageSize);
> int commaPosition = tmpFirstNcPage.ToString().IndexOf(','); //hier
> depperts!
>
> Der Fehler der erscheint:
> "startIndex darf nicht kleiner als 0 sein".
>
>
> Die Konstellationen und Abl�ufe bis der Fehler erscheint sind auf beiden
> Rechnern wirklich 100% identisch... gibts da unter Win2003 irgendwas, dass
> so eine banale Funktion beeintr�chtigt?
>
> Gruss
> Dani
_______________________________________________
CSharp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/csharp.net