2015-02-12 4 views
-1

У меня есть RichTextBox со многими линиями, как это `Бэтмен = игры \ file.exeудалить Speical строку из строки RichTextBox vb.net

Бэтмен = игры \ файл \ spid.exe

SNaruto = игры \ файл \ spid.exe

верхолаз = синий \ spk.exe

игра = gigi.exe

я пытаюсь сделать кнопку удалить каждые тексты после = быть как этот

Batman

SNaruto

Spiderman

игра

или даже

Batman =

SNaruto =

верхолаз =

игра =

благодаря

+0

Вы можете использовать 'метода String.IndexOf': https://msdn.microsoft.com/en-us/library/kwb0bwyd(v=vs.110).aspx –

+0

Спасибо ты, Но я новый в этой области Можете ли вы привести мне пример? – ryan2014

+0

Пример. (: –

ответ

-1

вам повезло, я работал с утра для подобного кода в что вы хотите, здесь мы идем, я внес некоторые изменения в свой код, чтобы соответствовать запросу ur

Dim x As String = "" 
     Dim y As String = "" 
     For Each strLine As String In TextBox1.Text.Split(vbNewLine) 'TO read each line in text box 
      Dim ii As Integer = strLine.Length 
      Dim i As Integer = 0 
      For i = 0 To ii - 1 
       y = strLine.Substring(i, 1) 
       If y = "=" Then 
        x = strLine.Substring(0, i) 
        TextBox2.AppendText(x & Environment.NewLine) 
       End If 
      Next 
     Next 
+0

Это способ много кода для этой простой задачи ... –

+0

И TextBox, и RichTextBox имеют свойство массива 'Lines', где каждый элемент является одной строкой в ​​тексте. Поэтому, чтобы читать каждую строку, вы просто просматриваете массив. Кроме того, вы можете использовать массив 'String.Chars' для строк для получения каждого символа вместо использования подстроки для каждого символа. Этот код потребляет больше оперативной памяти и процессора, чем это необходимо. Я рекомендую вам прочитать следующее: https: //msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.lines%28v=vs.110%29.aspx и этот https://msdn.microsoft.com/en-us/library /system.string.chars%28v=vs.110%29.aspx –

+0

Я хотел сказать «Этот код, который вы используете», а не просто «Этот код». Что мне нравится с вашим кодом, так это то, что вы справились чтобы решить проблему, используя свои собственные способы. (: –

0

Попробуйте это:

For x = 0 To RichTextBox1.Lines.Length - 1 
    Dim i As Integer = RichTextBox1.Lines(x).IndexOf("=") 
    If i <> -1 Then 
     RichTextBox1.Lines(x) = RichTextBox1.Lines(x).Remove(i) 
    End If 
Next 

Небольшое пояснение относительно свойств и методов, используемых:

Свойство RichTextBox.Lines() представляет собой массив строк, где каждый элемент/объект представляет собой одну строку в RichTextBox. Подробнее:https://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.lines(v=vs.110).aspx

Метод IndexOf возвращает индекс символа или строки внутри указанной строки. И если ничего не найдено, оно возвращает -1. К ошибкам проверяем, чтобы IndexOf не возвращал -1. Вот почему мы используем If i <> -1 Then, где <> означает «Не равно». Подробнее:https://msdn.microsoft.com/en-us/library/system.string.indexof(v=vs.110).aspx

Метод Remove будет удалить некоторое количество символов из указанной строки, начиная с заданного начального положения. Затем он удалит все символы, включая, а затем, и в указанную начальную позицию.Подробнее:https://msdn.microsoft.com/en-us/library/system.string.remove%28v=vs.110%29.aspx

Смежные вопросы