Перейти к содержанию

Компьютерная Техника и программы


Рекомендуемые сообщения

Опубликовано

Самое интересное: поставил бы четко задачу, уже получил бы готовое решение )

  • Ответов 5.2 тыс
  • Создана
  • Последний ответ

Топ авторов темы

  • Outlawif

    641

  • andreyyy

    437

  • Cardopusher

    361

  • Faust

    329

Топ авторов темы

Опубликовано

Тогда мне видится так:

Убираем из коллекции words все (не слово AND не число).

В своей среде-то я понимаю, как, а в регулярном выражении не знаю.

 

Возможно, исключить знаки препинания и все ?

Опубликовано

А коллекция-то тупая.

Ради интереса проверил, что содержит в себе коллекция words

 

Набрал в ворде такой текст

 

Снимок1.PNG

 

И прошелся по коллекции, выводя каждый ее член в новый элемент списка.

 

Снимок.PNG

 

Как-то тупо. Даже если точка стоит после слова, Ворд за отдельное слово считает и точку.

Пробелы между словами не включил. Но после абзаца, состоящего из одного восклицательного знака, в коллекции какого-то хера пробел (или не пробел, можно проверить по asc-коду, но лень, не за чем). Хотя там нет ни одного пробела. Тупо восклицательный знак. Энтер перевод на следующий абзац и сразу новое слово.

 

Предыдущий переход на следующий абзац игнорировался.

 

Короче, нужно исключить все пустое (длина слова равно 0) и "не число и не слово"

 

 

Нехер делать.

 

Но моветон :connie_xmas-moose:

Опубликовано

Пробел оно лепит к тому слову, после которого этот пробел идет. Поэтому я в скрипте им .Trim() делаю.

 

Регулярками можно что угодно проверять, изначально я их использовал когда был просто текст, тогда одной регуляркой можно было все посчитать и не париться. С коллекцией слов все хуже. Хотя бы потому что это адово медленно работает, несклько секунд оно жует файл на пару сотен слов. Регулярка там нужна, чтобы отсеять "не числа и не слова". Вопрос что включать в слова, а что нет. Если это английские слова, то регулярка для них будет \w+ . Если русские, то лучше перечислить все допустимые буквы. А если китайские? А если смешанные? Нет требований - хрен знает. Идти от обратного еще хуже, всевозможные управляющие символы отсеивать заколупаешься. А может быть это еще и слова должны быть настоящие, т.е. из словаря какого-нибудь? Типа текст "фыва олдж йцук хщш" не содержит слов, а просто кортежи из букв. Если б я был редактором или кем-то работающим с текстами, меня бы это интересовало, например.

 

ЗЫ Твое приложение у меня на компе работать не будет ) И зависит от версии ворда. Единственный нормальный кросс-платформенный и масштабируемый вариант с интерфейсом можно сделать только онлайн, где обработку можно сделать на сервере и она будет 100% всегда работать, а с клиента только файл грузить браузером и результат отдавать.

Опубликовано
запускаешь скачанную страничку, .
andreyyy,

извиняюсь, как ее правильно скачать чтобы все работало? просто "сохранить как" или есть ньюансы?

Опубликовано

Нет ньюансов. Просто сохранить как и открыть ее в браузере. Она никуда не конектится, инет ей не нужен.

Опубликовано

спасибочки всем

Опубликовано
Пробел оно лепит к тому слову, после которого этот пробел идет. Поэтому я в скрипте им .Trim() делаю.

 

ну и откуда тогда у меня в коллекции пробел после восклицательного знака ?

Там восклицательный знак, переход на следующий абзац и сразу без пробела новое слово.

 

Почему-то именно в этом месте в коллекции пробел появился и я эту закономерность не вкурил.

 

чтобы отсеять "не числа и не слова". Вопрос что включать в слова, а что нет. Если это английские слова, то регулярка для них будет \w+ . Если русские, то лучше перечислить все допустимые буквы. А если китайские? А если смешанные? Нет требований - хрен знает.

 

Вот чтоб не заморачиваться, на каком языке слово, я и пишу об исключении нечисел и не букв. Буквально.

Все в коллекции, имеющее первым символом (для простоты) не число и не букву - исключаем.

 

У меня это функции isdigit() и isalpha()

 

В С# - char.IsDigit() char.IsLetter() вроде бы

Должно четко исключать все, нас не интересующее независимо от языка.

 

В регулярке х.з. как

 

Я писал "не слова" ? Я опечатался. Имел в виду не букву

 

ЗЫ Твое приложение у меня на компе работать не будет )

Я это понял.

Не удивлюсь, если у тебя и дискетку вставить некуда :dc:

 

И зависит от версии ворда.

Нет, именно открыть , получить коллекцию words и отпустить работать будет на любой версии.

 

Word.Application винда понимает и запускает имеющуюся версию.

Тут никакой специфики не ожидается, которая в версию бы уперлась.

 

 

Единственный нормальный кросс-платформенный и масштабируемый вариант с интерфейсом можно сделать только онлайн,

Насколько я понял, у нас стоит задача с минимум заморочек наиболее просто решить задачу.

На рынок ПО я б на VFP ничего не предлагал.

 

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

 

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

 

 

А может быть это еще и слова должны быть настоящие, т.е. из словаря какого-нибудь?

 

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

Опубликовано
Поэтому я в скрипте им .Trim() делаю.

 

обрезка концевых пробелов - то само собой.

Так же как и приведение к верхнему регистру, чтобы не получилось, что Хер и хер - разные слова.

Опубликовано
приведение к верхнему регистру
Это нинада, у регулярок есть флаг нечувствительности к регистру.

 

откуда тогда у меня в коллекции пробел
Это точно пробел? Любые управляющие символы могут отображаться как пробел. Надо чаркод смотреть. Может это символы перевода каретки или еще что.
Должно четко исключать все
Насчет всех языков не уверен и я тут ждал бы подвоха, но в целом подход логичный. Однако какой же это код смелл :(
что большая часть форума общается почти без слов ?
Это да ) Однако, гугл ИИ обычно даже олбанский понимает, и может с очень высокой степенью вероятности определить, это ошибка в слове или вообще не слово. Вот, может Котику надо что-то такого уровня ))

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти
×
×
  • Создать...