tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von timestamp
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
271
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    CrimeTime89 CrimeTime89 ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    54
    Hallo,
    ich versuche grade eine XML zu Laden, doch leider läuft bei dem Splitten irgendetwas schief, hier der Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
                                    foreach (XmlNode node in nodes)
                                    {
                                        string[] strBreak = node.InnerText.Split(' ');
     
                                        tempPoint.X = float.Parse(Regex.Replace(strBreak[0] + " " + strBreak[1], " ", ""));
                                        tempPoint.Y = float.Parse(Regex.Replace(strBreak[2] + " " + strBreak[3], " ", ""));
                                        tempPoint.Z = float.Parse(Regex.Replace(strBreak[4] + " " + strBreak[5], " ", ""));
                                        List.Items.Add(tempPoint.ToString());
     
                                    }

    hier ein Beispiel der *.xml:

    Code :
    1
    2
    3
    4
    
    <?xml version="1.0"?>
    <Profile>
      <point>5883.203 4780.205 -72.88606</point>
    </Profile>

    ich hätte gern dies Angezeigt:
    5883.203,4780.205,-72.88606
    Geändert von CrimeTime89 (05.12.10 um 15:17 Uhr)
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Und wie äußert sich "läuft schief"?
    Hast du dir das Array angeschaut, ob das Problem wirklich beim Split liegt? Was steht denn drin?
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    CrimeTime89 CrimeTime89 ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    54
    strBreak[0] = "5883.203"
    strBreak[1] = "4780.205"

    Sobald tempPoint.X ausgeführt wurde und ich Moveover das X gehe ist der Inhalt: 5.88320342E+13
    dies ist das was "Schlief Läuft und dann bei und bei strBreak[3] wird das "catch" ausgelöst weil es nicht vorhanden ist, jedenfalls splittet er Falsch soviel ist fakt
     

  4. #4
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Auch wenn ich mich nicht wirklich mit .NET befasse. Aber das Array sollte eigentlich nur 3 Felder haben, bei dir hat es aber 6.
     

  5. #5
    CrimeTime89 CrimeTime89 ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    54
    stimmt schon, weil ich vorher eine andere *.xml geladen hatte wo ich das so machen musste.

    hier der neue code:
    Code :
    1
    2
    3
    4
    
     
                                        tempPoint.X = float.Parse(Regex.Replace(strBreak[0] + " ", "", ""));
                                        tempPoint.Y = float.Parse(Regex.Replace(strBreak[1] + " ", "", ""));
                                        tempPoint.Z = float.Parse(Regex.Replace(strBreak[2] + " ", "", ""));

    inhalt der xml:
    5883.203 4780.205 -72.88606

    OutPut:
    5883203, 4780205, -7288606
    ( es fehlen die Punkte)
     

  6. #6
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Kannst du das Regex.Replace nicht auch rausnehmen? Ich kann den Nutzen davon irgendwie nicht erkennen.
    Versuche einfach mal folgendes:
    Code :
    1
    2
    3
    
    tempPoint.X = float.Parse(strBreak[0], System.Globalization.CultureInfo.CreateSpecificCulture("en-us"));
    tempPoint.Y = float.Parse(strBreak[1], System.Globalization.CultureInfo.CreateSpecificCulture("en-us"));
    tempPoint.Z = float.Parse(strBreak[2], System.Globalization.CultureInfo.CreateSpecificCulture("en-us"));
    CrimeTime89 bedankt sich. 

  7. #7
    CrimeTime89 CrimeTime89 ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    54
    Funktioniert, aber könntest du mir mal erklären was
    Code :
    1
    2
    
     
    System.Globalization.CultureInfo.CreateSpecificCulture("en-us")

    Bewirkt?
     

  8. #8
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Damit wird eine CultureInfo-Instanz erzeugt. Darin stehen u.a. die Formatierungsinformationen für Zahlen.
    Da eine Anwendung standardmäßig die Sprache des Systems nutzt ist das hier notwendig
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. Access: Fehler beim Laden einer dll
    Von redwidow im Forum Office-Anwendungen
    Antworten: 16
    Letzter Beitrag: 29.12.10, 16:36
  2. Antworten: 3
    Letzter Beitrag: 15.06.10, 18:44
  3. Antworten: 1
    Letzter Beitrag: 31.03.09, 22:05
  4. JVM verabschiedet sich beim laden einer DLL
    Von normaler_spinner im Forum Java
    Antworten: 13
    Letzter Beitrag: 31.05.07, 23:59
  5. Fehler beim Laden einer DLL
    Von Juergen Hansen im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 26.02.07, 18:43