Autor Beitrag
felix96
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: Sa 11.09.10 18:29 
Hallo,
ich würde gerne mein Programm alles ab einem Bestimmten Wort in eine andere Richtextbox speichern, nur wie ?

Hier mal mein bisheriger Code:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
string[] einträge;
einträge = richTextBox2.Lines;
                richTextBox1.Text = "";
                lesen = false;
                int ins = -1;
                foreach (string s in einträge)
                {
                    ins++;
                    if (einträge[ins].CompareTo("C#") != -1)
                    {
                        MessageBox.Show(einträge[ins]);
                        //lesen = true;
                        richTextBox1.Text = richTextBox1.Text + einträge[ins];
                    }
                    if (lesen==true)
                        richTextBox1.Text = richTextBox1.Text + s;
                }


Und hier der Inhalt:
Hallo,
Liebe
C# ler
^^ war das schlüsselwort

Allerdings steht in Richtextbox1 zum Schluss "Hallo,Liebe C# ler"

mfg Felix

P.S.
Wenn ich mit der Variable von foreach arbeite geht es auch nicht.

Moderiert von user profile iconKha: Code- durch C#-Tags ersetzt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 11.09.10 18:41 
Was der Code macht ist (soweit ich das nach einem kurzen Blick sehe) alle Zeilen, die nicht "C#" sind, in das andere RichEdit kopiert werden.

Was steht denn in dem RichEdit drin?
// EDIT: Wenn da keine Zeile ist, die exakt C# ist, wird auch alles kopiert. Wenn du auch die genannte Zeile ignoriert haben willst, musst du statt die Strings zu vergleichen auch schauen ob C# in dem String vorkommt.

Nebenbei:
ausblenden C#-Quelltext
1:
2:
                    if (lesen==true)
                        richTextBox1.Text = richTextBox1.Text + s;
Das sieht unschön aus (ob das in C# auch Probleme macht, weiß ich nicht). Besser:
ausblenden C#-Quelltext
1:
2:
                    if (lesen)
                        richTextBox1.Text = richTextBox1.Text + s;
felix96 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: So 12.09.10 10:23 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

// EDIT: Wenn da keine Zeile ist, die exakt C# ist, wird auch alles kopiert. Wenn du auch die genannte Zeile ignoriert haben willst, musst du statt die Strings zu vergleichen auch schauen ob C# in dem String vorkommt.


Wie mach ich das?
felix96 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: So 12.09.10 10:40 
indexOf


Danke :-)
felix96 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: So 12.09.10 11:03 
Doch noch nicht gelöst :-(

Wenn ich in die Box einen Quelltext von Webbrowser übertrage, ist diese ohne Zeilenumbrüche, dass heißt wenn ich Foreach drüber laufen lasse, ist es nur ein Durchgang.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
foreach 
int i=0;
(string s in richTextBox2.Lines)
{
i++;
MessageBox.Show(Convert.ToString(i));
}


Es kommt einmal eine Dialog-Box, wo 1 drin steht.
felix96 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: So 12.09.10 11:36 
fürs erste gelöst ;P

richTextBox2.Text = richTextBox2.Text + i + "\r\n";
jetzt hat sie Umbrüche.