Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Алгоритм быстрой обработки текста? Добавлено: 27.02.08 01:11  

Автор вопроса:  Oleg

Ответить

  Ответы Всего ответов: 23  

Номер ответа: 16
Автор ответа:
 Oleg



Вопросов: 1
Ответов: 7
 Профиль | | #16 Добавлено: 04.03.08 14:30
По шагам:
1. Заливаю файл в переменную
2. Нахожу все номера и создаю массив из них, сортирую
Эти шаи я делаю и происходит это все довольно быстро!
Дальше:
1. Есть два варианта
   1.1. Построчная обработка текста по замене из массива через InStr, Replace и т.д. Замененное сливаем в StringBuilder переменную
   1.2. Разбить текст по частям и менять через регекспы и сливаем в строчную переменную

Я правильно понял?
Ты советуешь 1.1?

Ответить

Номер ответа: 17
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #17 Добавлено: 04.03.08 14:57
Нет
Replace не нужен.
Мы опять выполняем посимвольный проход текста и переливаем его в StringBuilder, заменяя старые идентификаторы новыми - Replace для этого не нужен, InStr скорее всего тоже.

Ответить

Номер ответа: 18
Автор ответа:
 Oleg



Вопросов: 1
Ответов: 7
 Профиль | | #18 Добавлено: 04.03.08 20:18
Мы опять выполняем посимвольный проход текста и переливаем его в StringBuilder, заменяя старые идентификаторы новыми - Replace для этого не нужен, InStr скорее всего тоже.

Чегто я не понял, можно конкретнее, или примерчик?

Ответить

Номер ответа: 19
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #19 Добавлено: 04.03.08 21:18
Ну примерчик это вряд ли.

Посимвольно перебираешь свой текст и переносишь его в StringBuilder, по ходу заменяя номера идентификаторов.

Ответить

Номер ответа: 20
Автор ответа:
 Oleg



Вопросов: 1
Ответов: 7
 Профиль | | #20 Добавлено: 05.03.08 00:26
Заменять как? С помощью какой функции?

Ответить

Номер ответа: 21
Автор ответа:
 Oleg



Вопросов: 1
Ответов: 7
 Профиль | | #21 Добавлено: 05.03.08 11:23
Я так понял:
1. Открываем файл на чтение и считываем по символьно
2. Все что считываем тутже сливаем в переменную StringBuilder
3. Встретив по дороге символ который нужно заменить, меняем
4. Сливаем переменную в файл
Правильно понял?

Но здесь у меня проблема, у меня то что нужно заменить от 1 до 12 символов может быть, и пересекаться в тексте они могут с другими строками контекстно.
Или я что не та понял?

Ответить

Номер ответа: 22
Автор ответа:
 MirrorOfTheReal



Вопросов: 0
Ответов: 1
 Профиль | | #22 Добавлено: 13.12.09 17:15
Насколько я понял - нам надо перенумеровать узлы.
Что мешает сделать так?
1. Читаем все узлы подряд и делаем таблицу соответствия (можно хеш)
Пример:
1 - 1
...
7 - 7
8 - 14
....
2. Далее проходим этот файл еще раз и через эту таблицу соответствия находим номер узла который должен быть.
Если узел изменился - записываем. (Как вариант можно писать в отдельный файл)

В итоге получается два прохода. Все контексты и пересечения здесь учтены.
Что-то не так?

Ответить

Номер ответа: 23
Автор ответа:
 Programmer



Вопросов: 71
Ответов: 246
 Профиль | | #23 Добавлено: 13.12.09 18:00
Ээ как насчет такого метода (правда он для VB6, но думаю не сложно переделать):
Do While eof(1)=false
Line Input #a,s
If Left(s,3)="Nod" Then s="Nod=" & НОМЕР
If Left(s,10)="TraffPoints" Then s="TraffPoints=" & НОМЕР

Print#2, s
Loop

Ну, или как-то так. Метод называется "в лоб". Правда не уверен насчет скорости... Но вроде быстрее должно быть. Хотя не факт.
Или я что-то не правильно понял?

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам