String spliten

roemer

Grünschnabel
HalloHabe folgendes Problem. Ich möchte mit C# einen string abschneiden(spliten). Der String kann verschieden sein. Ich muss also denn string eines Pfades:

"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"

nach dem letzten \ abschneiden damit er so aussieht:

C:\Program Files\Microsoft Office\OFFICE11

könnt ihr mir helfen?
 
Hallo,

FileInfo f = new FileInfo("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE");
string dir = f.DirectoryName;

Gruss Alexander
 
Schau dir mal

Path.GetDirectoryName

an. Sollte dir weiterhelfen.

Splitten kannst du sonst mit myString.Split('meinTrennzeichenAlsChar');
 
kahuna hat gesagt.:
Hallo,

FileInfo f = new FileInfo("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE");
string dir = f.DirectoryName;

Gruss Alexander

Warum über die FileInfo? Hier musst du ja ein Object instanzieren, was mit der statischen Path.GetDirectoryName Methode nicht notwendig ist.
 
Danke!

Ich muss kein Pfadnamen suchen, der String könnt auch "Katze/Hund" sein. Ich brauch lediglich ein gutes Beispiel wie man nun den String von dem "/" her abtrennen kann. Sollte eigenlich nicht so schwierig sein, bin jedoch noch anfänger mit c#
 
Hatte ich doch schon in meiner ersten Antwort erwähnt:

myString.Split('trennzeichen');

In der Hilfe steht alles Notwendige drinnen.

Aber, dennoch hier ein kleines Beispiel:

Code:
string splitItString = "hund/katze/maus";

string[] gesplittet = splitItString.Split("/");

Manche Zeichen musst du escapen .. zB \
Entweder du arbeitest hier dann mit \\ oder du setzt ein @ davor. also
Code:
stringToSplit.Split(@"\");

Du kannst natürlich auch nach mehreren Zeichen splitten:

Code:
string myString = "dies ist eine kuh/maus/katze";

char[] delimiters = new char() {' ','/'};
string[] ergebnis = myString.Split(delimiters);

Hier wird nun nach Leerzeichen UND / getrennt.

Das wäre jedoch alles durch Drücken von F1 herauszufinden gewesen ;-)
 
habe gemerkt dass es trotzdem nicht klapt. wenn ich genau diesen code:


string splitItString = "hund/katze/maus";

string[] gesplittet = splitItString.Split("/");​



in meine WebFrom reinkopiere taucht folgender Feheler auf:

The best overloaded method match for 'declaration' has some invalid arguments

Argument '1': cannot convert from 'string' to 'char[]'


was mach ich falsch? muss ich noch einiges definiere oder eine lib hinzufügen?
 
So sieht mein ganzer code aus:


using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using Excel;

using System.Reflection;

using System.Diagnostics;

//using Excel = Microsoft.Office.Interop.Excel;



namespace ExcelExample

{

/// <summary>

/// Summary description for WebForm1.

/// </summary>

public class WebForm1 : System.Web.UI.Page



{



protected System.Web.UI.WebControls.Button Button1;



private void Page_Load(object sender, System.EventArgs e)

{



}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}



/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.Button1.Click += new System.EventHandler(this.Button1_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void Button1_Click(object sender, System.EventArgs e)

{

//UseDelegates();

string blabla = @"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE";

//System.Diagnostics.Process.Start (blabla);




















string splitItString = "hund/katze/maus";

string[] gesplittet = splitItString.Split("/");




Response.Write("String geschnitten:"+gesplittet+"<br>");







}





}

}

 
hi

String.Split() wird immer mit nem char[] oder nem einzelnen char ausgeführt. (ich kannte bisher nur das mit char[] aber der eder hats ja geschrieben)

du splittest mit nem string (erkennbar an den anführungszeichen).

versuche String.Split(' <hier char einfügen> ') oder String.Split(' <char einfügen> ', ' <char einfügen> ') oder String.Split(<char[] einfügen>).

siehst den unterschied? oben werden nur einfache hochkommas (zeigen char an) verwendet. oder halt der name eines char[].


mfg
tom
 

Neue Beiträge

Zurück