Autor Beitrag
andy11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mo 15.02.10 15:36 
ich habe hier folgenden String den ich bearbeiten will nur nicht weiß welche Klassen dafür ideal wären:
"Klausen-Leopoldsdorf 400 m -2.5° 80 % Nordwest, 7 km/h Nordwest, 14 km/h 0.0 mm 0 % 1011.8 hPa"

jetzt will ich jedes Wort in einem String umwandeln aber wie mache ich das ist die Frage?
Das ganze soll am ende dann in einer excel Tabelle rein


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Mo 15.02.2010 um 15:08
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 15.02.10 15:39 
Hallo,

die Klasse string bietet dir an, einen String abhängig von einem Zeichen zu zerlegen. In der Doku wirst du fündig. Das Beispiel wurde auch schon zig mal im Internet und hier im Forum gezeigt...

Das solltest du hin bekommen :)

Gruß Daniel
andy11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mo 15.02.10 15:43 
Zitat:
die Klasse string bietet dir an, einen String abhängig von einem Zeichen zu zerlegen.

Auch nach mehreren Leerzeichen?
dh dort wo nur ein Leerzeichen bleibt unbehaart und ab mehreren Leerzeichen soll er übernehmen

die sache schaut ja in wirklichkeit so aus:
Wiener Neustadt 285 m -0.5° 68 % Nordost, 8 km/h Nordost, 12 km/h 0.0 mm 0 % 1011.5 hPa
dh ein leerzeichen soll er lassen und wenns mehr als 2 sind fängt er sozusagen an aufzumnehmen

außerdem weiß ich die namen nicht, das soll das programm auch nicht, sonst wär ja das ganze auf diesen string beschrenkt


Zuletzt bearbeitet von andy11 am Mo 15.02.10 15:45, insgesamt 1-mal bearbeitet
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 15.02.10 15:45 
Such dir die Funktion und schau sie dir an... das klärt deine Fragen.
andy11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mo 15.02.10 15:49 
www.aspheute.com/artikel/20000803.htm
da steht glaub ich alles drin was mit strings zu tun hat
vielleicht kannst du mir sagen mit welcher Methode ich etwas anfangen könnte, denn ich seh da nichts brauchbares drinn
Kenpachi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30

Win Vista, Win 7
C#, VB, ASP.NET (VS 2010 Express)
BeitragVerfasst: Mo 15.02.10 15:50 
Gratulation. Jemandem, der in einen Support-Forum eine Frage stellt, damit zu helfen, ihm eine uneindeutige Antwort zu geben ist schon außergewöhnlich nett.

andy11, du könntest dir die Split-Methode der String-Klasse nehmen und damit mal ein wenig rum experimentieren.
msdn.microsoft.com/d...plit%28VS.80%29.aspx
Das könnte dann so aussegen: string[] MyStrings = DeinString.Spilt("  ", StringSplitOptions.None);

Alternativ könntest du dir deinen String auch in ein Char-Array umwandeln (string.ToCharArray) und dann mit einer Schleife durchgehen, wo du gerne trennen möchtest.
Die Lösung mit der Split-Methode ist natürlich performanter.


Grüße~
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 15.02.10 16:05 
Dein Link ist im Beispiel von ASP.NET. Am Besten für Klassen Doku bei MSDN schauen.

und string[] MyStrings = DeinString.Spilt(" ", StringSplitOptions.None); ist leider auch keine korrekte Antwort.
ausblenden C#-Quelltext
1:
string[] MyStrings = "blub".Split(new string[] {"  "}, StringSplitOptions.None);					


Es geht ja darum, dass man den Leuten hilft. Den Code runter schreiben würde natürlich viel schneller gehen.
c#surfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 42
Erhaltene Danke: 2



BeitragVerfasst: Mo 15.02.10 16:11 
Da andy11 vieleicht eine ganze Datei mit diesen Datensätzen hat, könnte man auch Excel die Arbeit überlassen. Da kann man für den Dateiimport das Trennzeichen (hier das Leerzeichen) festlegen.
andy11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mo 15.02.10 16:27 
dank soweit, ich habe jetzt aber ein weiteres Problem und zwar wie kann ich ihm sagen ab 3 Leerzeichen ODER mehr soll er trennen?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
string[] Array1 = new string[3];
        string[] stringArr = new string[] { "   " };
        private void cmdsplit_Click(object sender, EventArgs e)
        {
            try
            {
                string s = Convert.ToString(txteingabe.Text);
                Array1 = s.Split(charArr, 10, StringSplitOptions.None);
                txt1.Text = Array1[0];
                txt2.Text = Array1[1];
                txt3.Text = Array1[2];
            }
            catch { }
        }
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 15.02.10 16:51 
Du kannst auch mit Regulären Ausdrücken einen String zerlegen.
Dafür kannst du die Klasse Regex verwenden.

Auf folgenden Links findest du Informationen zu Regulären Ausdrücken in .NET

www.juergen-bayer.ne...uecke_001.aspx#h2_46

mojo-corp.de/regulae...druecke_c_sharp.html

Pattern: "\s{2,}";

\s == whitespace
{2,} Quantifier der sagt min 2.

Gruß Daniel
andy11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mo 15.02.10 17:00 
ouukay danke guys