Autor Beitrag
MiChri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 28

Win XP, Win 2000, Win 98, Linux
D4 Prof
BeitragVerfasst: Di 27.09.05 17:20 
Hallo
Ich suche eine möglichkeit aus einer (Multiline) TextBox eine Zeile (per Index) zu löschen. Mir ist klar, dass ich mich "\r\n" zählend durch den String hangeln kann, aber geht das nicht bequemer und schneller, wie bei Delphi über die Lines Propertie?

Vielen Dank schonmal
Gruß
Christian
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 27.09.05 17:30 
Hallo!

Du kannst mittels der Eigenschaft Lines auf die einzelnen Zeilen zugreifen.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MiChri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 28

Win XP, Win 2000, Win 98, Linux
D4 Prof
BeitragVerfasst: Di 27.09.05 17:36 
Danke erstmal
Aber... wie kann ich darüber eine Zeile löschen??? (noch nicht einmal das ändern funktioniert einwandfrei)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 27.09.05 17:44 
user profile iconMiChri hat folgendes geschrieben:
wie kann ich darüber eine Zeile löschen???
Die Eigenschaft lines ist ein einfaches String[]-Array. In dem Hilfetext zur Eigenschaft gibt es ein Beispiel, wie man damit arbeitet. Sieht in Delphi so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
  tmpArr : Array of String;
  i: Integer;
begin
  tmpArr := textbox1.lines; //holen

  //Löschen (oder was anderes, wenn man will)
  for i:=1 to High(tmpArr) do
    tmpArr[i-1] := tmpArr[i];
  SetLength(tmpArr, Length(tmpArr)-1);

  textbox1.Lines := tmpArr;//und zurück
end;


Damit sollte auch das Ändern von Einträgen problemlos gehen. Etwas umständlich, aber laut Hilfe stimmt das so. :gruebel:

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MiChri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 28

Win XP, Win 2000, Win 98, Linux
D4 Prof
BeitragVerfasst: Di 27.09.05 17:56 
Mhhhmmm :roll:
Scheint ja furchtbar komfortabel zu sein... Da ich mit VC# programmiere hatte ich deinen Hilfstext nicht und hatte auf etwas eleganteres gehofft.
Ausserdem kam bei mir folgendes lustiges zustande:
ausblenden C#-Quelltext
1:
2:
  m_Text.Lines[lineNumber]="ASimpleString";
  bool test=(m_Text.Lines[lineNumber]=="ASimpleString");

Na rate mal welchen Wert test danach hatte... ja natürlich false

Gruß Christian
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 27.09.05 17:59 
user profile iconMiChri hat folgendes geschrieben:
Da ich mit VC# programmiere hatte ich deinen Hilfstext nicht und hatte auf etwas eleganteres gehofft.
Die Hilfe ist beim .NET Framework SDK dabei, solltest Du also auch haben.

user profile iconMiChri hat folgendes geschrieben:
Ausserdem kam bei mir folgendes lustiges zustande:
ausblenden C#-Quelltext
1:
2:
  m_Text.Lines[lineNumber]="ASimpleString";
  bool test=(m_Text.Lines[lineNumber]=="ASimpleString");
Geht jetzt aber, wenn Du Dir die lines in ein Array holst, oder?

Und dass das nicht sehr komfortabel ist, da muss ich Dir Recht geben.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MiChri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 28

Win XP, Win 2000, Win 98, Linux
D4 Prof
BeitragVerfasst: Di 27.09.05 18:36 
user profile iconChristian S. hat folgendes geschrieben:

Die Hilfe ist beim .NET Framework SDK dabei, solltest Du also auch haben.

Leider nicht. Die hilfe zur Line Propertie sieht bei mir so aus:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
public void ViewMyTextBoxContents()
 {
    // Create a string array and store the contents of the Lines property.
    string[] tempArray = new string [textBox1.Lines.Length];
    tempArray = textBox1.Lines;
 
    // Loop through the array and send the contents of the array to debug window.
    for(int counter=0; counter <= tempArray.Length;counter++)
    {
       System.Diagnostics.Debug.WriteLine(tempArray[counter]);
    }
 }

user profile iconChristian S. hat folgendes geschrieben:

Geht jetzt aber, wenn Du Dir die lines in ein Array holst, oder?

Wie meinst du das jetzt genau? Auf einer Kopie arbeiten? Das habe ich noch nicht probiert.

Ich habe jetzt einen StringReader mit dem Text der TextBox gefüttert und alles in einen Zweiten String gepackt.
Das kommt dem "Parser Charakter" meiner Funktion sowieso näher.

Danke nochmal für die Mühe und einen Schönen Feierabend :D
Gruß
Christian
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 27.09.05 18:39 
Den Hilfetext meine ich. Der Rest war ja dann ansich nur noch ein kleiner Schritt. Zumindest das Löschen mittels des tempArrays geht bei mir. Das Ändern habe ich nicht ausprobiert, weil das Löschen ja das Ändern beinhaltet.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".