www.mikrocontroller.net

Forum: PC-Programmierung C# probleme: String & if& operatoren


Autor: R. Oden (sonofoden)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
also erstmal möchte ich nochmal auf meinen anderen Thread aufmerksam 
machen.
Beitrag "Re: String to ASCII Verständnissproblem!"

Zweitens hab ich nun folgendes Problem:
String SerPortGeneral;
String StringZone1;
int WertZone1;
if (SerPortGeneral[0] == "Z")
            {
                if (SerPortGeneral[1] == "1")
                {
                    StringZone1[0] = SerPortGeneral[2];
                    StringZone1[1] = SerPortGeneral[3];
                    StringZone1[2] = SerPortGeneral[4];
                    StringZone1[3] = SerPortGeneral[5];
                    WertZone1 = Convert.ToInt16(StringZone1);
                }
            {

Das funktioniert in C# nicht aber ich weis nicht wieso bzw. wie man das 
sonst machen kann.

Denn mit den [] kann man doch auf die einzelnen elemente von Strings 
zugreifen oder etwa nicht?
Der zweite Fehler der mir angezeigt wird ist das ich die einzelnen 
elemente der Strings nicht zuweisen kann:

StringZone1[0] = SerPortGeneral[2];


Lg Son of Oden

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zumindest in allen Standard-C-Versionen (bis einschließlich c99) ist = 
nicht dasselbe wie ==.
Aber möglich, dass Microsoft das wieder anders machen muss.

Autor: R. Oden (sonofoden)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh nein! zu langsam editiert...
ich hab eh == gemeint

LG Son of Oden

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann liegts an der falschen geschweiften Klammer. (Merkste was?)



PS: C# ist doch so toll, da gibts bei Strings doch bestimmt so eine 
substr()-Funktion, oder?

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wenns dadran nicht liegt, könnte es daran liegen, dass (bei 
'Standard-C') auch "a" etwas Anderes meint, als 'a' :-)

Autor: R. Oden (sonofoden)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhh das mit " und ' wars danke^^

aber das zuweisen funktioniert noch immer nicht...

LG Son of Oden

Autor: R. Oden (sonofoden)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So Lösung ist Folgendes:

        String SerPortGeneral;
        String Zone1String;
        char[] Zone1Char= new char[4];
        int WertZone1;

            if (SerPortGeneral[0] == 'Z')
            {
                if (SerPortGeneral[1] == '1')
                {
                    Zone1Char[0] = SerPortGeneral[2];
                    Zone1Char[1] = SerPortGeneral[3];
                    Zone1Char[2] = SerPortGeneral[4];
                    Zone1Char[3] = SerPortGeneral[5];
                    Zone1String = new string(Zone1Char);
                    WertZone1 = Convert.ToInt16(Zone1String);
                }

LG Son

Autor: Klugscheißer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eleganter ist:

if( SerPortGeneral.StartsWith("Z1") == true)
{
  WertZone1 = Convert.ToInt16(SerPortGeneral.SubString(2, 4));
}

Autor: Markus V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ändern einzelner Zeichen eines Strings ist in DotNet nicht möglich, 
da String Objekte sogenannte "immutable objects" sind. Das geht ganz 
klar aus der MSDN hervor: "A String object is called immutable 
(read-only) because its value cannot be modified once it has been 
created.".

Demzufolge ist es logisch, daß x = string[y] funktioniert, string[y] = x 
aber nicht.

Gruß
Markus V.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.