Работа с текстом (GUI) C#

Денис12 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
29.10.2012

1. Дано:

1.1. Текстовый файл с множеством строк вида 1;2;3 (пример строки: http://site.com/;user;pass)

1.2. Список URL. И к каждому URL:

1.2.1. Список строк 1

1.2.2. Список строк 2

1.2.3. Соотношение использования строк

1.3. Файл с предложениями (1 строка = 1 предложение)

1.4. Диапазон количества предложений (2 числа, ОТ и ДО)

Скрин интерфейса: http://i.imgur.com/6GJUC.png

2. Интерфейс (основное окно):

2.1. Просмотр списка URL

2.2. Возможность удалить/изменить/добавить URL

2.3. Поля для ввода данных пунктов: 1, 3, 4

3. Интерфейс (окно добавления/изменения URL)

3.1. Поле URL

3.2. Многострочное поле ввода "списка строк 1"

3.3. Поле "выбрать файл" для "списка строк 2"

3.4. Поле указания соотношения

Алгоритм работы:

Программа для каждого добавленного URL по правилам заданным в настройках URL генерирует текст, затем совмещает его с исходным файлом (1.1) по принципу создания новой колонки (1;2;3;4, 4 - новая колонка, 1;2;3 - колонки которые уже были), результат записывает в этот же файл.

Описание на уровне URL.

"Список строк 1" (1.2.1) связан со "соотношением" (1.2.3). Количество строк в "списке строк 1" = количеству чисел в "соотношении". Сумма чисел в соотношении равна 100. Роль соотношения - указать для каждой строки сколько % от количества строк в п.1.1 будет использоваться (дублироваться) данная строка.

Пример: файл 1.1 содержит 200 строк, в программу добавлен 1 URL, в настройках URL в "списке строк 1" содержатся 3 строки: string 1, string 2, string 3. Соотношение стоит 70;20;10. Это значит что "string 1" должна быть продублирована 70% от 200 = 140 раз, "string 2" 20% от 200 = 40 раз, и "string 3" 10% от 200 = 20 раз. Если в "соотношении" меньше чисел, чем количество строк в "списке строк 1" то оставшиеся строки (для которых не задано соотношение) распределить равномерно по формуле (100 - сумма числе имеющегося соотношения)/количество оставшихся строк.

На выходе получаем список строк, в таком формате:

URL|string 1

URL|string 1

URL|string 1

URL|string 1

URL|string 2

URL|string 2

URL|string 2

URL|string 2

URL|string 3

URL|string 3

URL|string 3

URL|string 3

URL|string 1 - таких строк получается 140, URL|string 2 - таких 40, URL|string 3 - таких 20.

Полученное преобразовываем в вид string 1, итого полученный список получает вид:

string 1

string 1

string 1

string 1

string 2

string 2

string 2

string 2

string 3

string 3

string 3

string 3

Затем для каждой такой строки необходимо сгенерировать текст. Делается это по следующему алгоритму:

1. Сгенерировать случайное число из диапазона 1.4.

2. Взять из файла 1.3. количество предложений равное числу из п.1. То что взяли - удалить из исходного файла.

3. Предложения соеденить между собой в одну строку. Разделитель предложений - пробел.

4. Ищем любое слово в полученном из п.3 тексте, либо ДО либо ПОСЛЕ (случайно) поставить строку (string 1)

5. Взять "списка строк 2" текущего URL (1.2.2) случайную строку, вставить либо ДО либо ПОСЛЕ конструкции эту строку

6. Заключить весь созданный текст в тег

, пример:

123 год — невисокосный год, начинающийся в пятницу string 1 string from list 2 по григорианскому календарю. Это 123 год нашей эры, 123 год I тысячелетия, 23 год II века, 3 год 3-го десятилетия II века, 4 год 120-х годов.

Затем все эти операции необходимо сделать для каждого URL в программе. Новый текст вместе с данными URL следует помещать после

, то есть так:

URL 1 + его текст

URL 2 + его текст

URL 3 + его текст

URL 4 + его текст

Результат записать четвертой колонкой в файл 1.1.

После этого необходимо выделить домен последнего URL из списка программы, и его занести пятой колонкой в файл 1.1.

Ситуации:

Файл 1.1 используется в первый раз, в софт добавили несколько URL - программа сгенерировала текст

Файл 1.1 использовался ранее, в софт добавили новые URL - программа генерирует для новых URL текст, дописывает текст в четвертую колонку, после существуюшего текста

Файл 1.1 использовался ранее, в софте удалили URL - программа удаляет те блоки

блок

в которых содержатся URL для удаления

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

Всегда должен быть пятой колонкой домен последнего URL что в списке программы.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

ICQ: 614790194

Есть рабочий прототип требуемой программы, скину взявшемуся для упрощения понимания сути софта.

Софт необходимо писать с заделом на будущее, то есть так, что если я попрошу добавить новый функционал - не пришлось переписывать весь софт с нуля.

Работа софта планируется на Windows Server 2008 R2

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Заявки фрилансеров