[SIZE=2][COLOR=#0000ff][FONT=Courier New]string[/FONT][/COLOR][/SIZE][FONT=Courier New][SIZE=2] searchText = [/SIZE][SIZE=2][COLOR=#800000]"black cat"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New];[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] position = richTextBox1.Find(searchText);[/FONT]
[FONT=Courier New]richTextBox1.Select(position, searchText.Length);[/FONT]
[/SIZE]
RichTextBox поиск выделение нужного
Случилась маленькая проблема. Пришел к выводу, что не могу организовать поиск и выделение определенного количества символов после найденного слова в richtextbox е. Подскажите, каким образом это реализуется? Может есть пример?
Насколько я понимаю, необходимо искать слово, RichTextBox.Find. Потом перебирать и считывать каждый символ до достяжения определенного занчения в цикле. Так? Так вот как считать каждый символ в отдельную переменную, тоесть чтобы в переменной была строка.
Заранее спасибо за ответ.
Вот простой пример с поиском и выделением:
Код:
Спасибо. Буду пытаться.
Чего тоя не понял.... а как картинку ты собрался искать при помощи Find??? Что найти-то тебе надо?
Сделать атоматический реггер к примеру на сайте. Вот и думал как делать. Если без картинок сайт, то там все просто, пост запрос веб реквестом с параметрами и все.
Там где есть код, который нужно ввести, необходимо вытаскивать адрес картинки и показывать его себе. Каким образом это сделать я так и не понял, в ответ от сервера приходит то-ли идентификатор то-ли чего еще, не знаю. Но. Как вытащить его из ответа я так и не понял. Поэтому пытаюсь вытаскивать из полученного результат, тоесть загрузки страницы. Я загружаю ее хтмл код в ричтекстбокс, потом ищу ее в тесксте, запрашиваю отдельно, вывожу. Пишу в поле это код картинки, далее отправляю запрос уже на сервак с этим кодом. может я изобретая велосипед? :)
Так ничего и не получилось. Жду помощи от форумцев...
Цитата: Ariman
необходимо вытаскивать адрес картинки и показывать его себе. Каким образом это сделать я так и не понял, в ответ от сервера приходит то-ли идентификатор то-ли чего еще, не знаю.
Ломать CAPTCHA это конечно интересно, тем более что дырки во многих форумных движках есть. Попробуй для начала искать тег IMG в полученной от сервера странице - лучше через регулярные выражения.
Да ее никто ломать не собирался. :) меня просто интересует поиск по тексту определенного текста. Неужели перебирать все по одному символу ? Может есть пути изящней..
Цитата: Ariman
Да ее никто ломать не собирался. :) меня просто интересует поиск по тексту определенного текста. Неужели перебирать все по одному символу ? Может есть пути изящней..
Вот поиск <img> тегов в http-ответе сервера.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;
namespace ImageTagParser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Regex img_tag = new Regex("<img.*?>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
private void btnParse_Click(object sender, EventArgs e)
{
WebRequest request = WebRequest.Create(txtUrl.Text); // например: http://lan.du/
try
{
using (WebResponse response = request.GetResponse())
{
HttpWebResponse http_response = response as HttpWebResponse;
if (http_response != null)
{
using (Stream stream = http_response.GetResponseStream())
{
// кодровка текста в ответе сервера
Encoding encoding = Encoding.GetEncoding(1251); // по факту русская "виндовая"
//Encoding encoding = Encoding.GetEncoding(http_response.CharacterSet); // такая, каую назвал сказал сервер
// получаем ответ и перекодируем его
StringBuilder response_string = new StringBuilder();
byte[] buffer = new byte[4096];
int count = 0;
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
response_string.Append(encoding.GetString(buffer, 0, count));
string input = response_string.ToString();
// разбираем ответ сервера
StringBuilder result_string = new StringBuilder();
foreach (Match m in img_tag.Matches(input))
result_string.AppendLine(m.Value);
txtResult.Text = result_string.ToString();
}
}
}
}
catch(Exception error)
{
txtResult.Text = error.Message;
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;
namespace ImageTagParser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Regex img_tag = new Regex("<img.*?>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
private void btnParse_Click(object sender, EventArgs e)
{
WebRequest request = WebRequest.Create(txtUrl.Text); // например: http://lan.du/
try
{
using (WebResponse response = request.GetResponse())
{
HttpWebResponse http_response = response as HttpWebResponse;
if (http_response != null)
{
using (Stream stream = http_response.GetResponseStream())
{
// кодровка текста в ответе сервера
Encoding encoding = Encoding.GetEncoding(1251); // по факту русская "виндовая"
//Encoding encoding = Encoding.GetEncoding(http_response.CharacterSet); // такая, каую назвал сказал сервер
// получаем ответ и перекодируем его
StringBuilder response_string = new StringBuilder();
byte[] buffer = new byte[4096];
int count = 0;
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
response_string.Append(encoding.GetString(buffer, 0, count));
string input = response_string.ToString();
// разбираем ответ сервера
StringBuilder result_string = new StringBuilder();
foreach (Match m in img_tag.Matches(input))
result_string.AppendLine(m.Value);
txtResult.Text = result_string.ToString();
}
}
}
}
catch(Exception error)
{
txtResult.Text = error.Message;
}
}
}
}
На форме лежат кнопка (Button) btnParse, поля ввода (TextBox) txtUrl и txtResult.
txtUrl используется для ввода целевого адреса
txtResult - результат простого http-запроса или сообщения об ошибках.
Для вычленения src атрибута в теге img можно написать более строгое регулярное выражение, думаю, с этим вы справитесь.