Перейти до публікації

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


Рекомендовані повідомлення

Опубліковано:

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

  • Відповіді 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() делаю.

 

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

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

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

 

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

Створіть акаунт або увійдіть у нього для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунту. Це просто!

Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.

Увійти зараз
×
×
  • Створити...