Outlawif Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 Самое интересное: поставил бы четко задачу, уже получил бы готовое решение )
andreyyy Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 Тогда мне видится так: Убираем из коллекции words все (не слово AND не число). В своей среде-то я понимаю, как, а в регулярном выражении не знаю. Возможно, исключить знаки препинания и все ?
andreyyy Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 А коллекция-то тупая. Ради интереса проверил, что содержит в себе коллекция words Набрал в ворде такой текст И прошелся по коллекции, выводя каждый ее член в новый элемент списка. Как-то тупо. Даже если точка стоит после слова, Ворд за отдельное слово считает и точку. Пробелы между словами не включил. Но после абзаца, состоящего из одного восклицательного знака, в коллекции какого-то хера пробел (или не пробел, можно проверить по asc-коду, но лень, не за чем). Хотя там нет ни одного пробела. Тупо восклицательный знак. Энтер перевод на следующий абзац и сразу новое слово. Предыдущий переход на следующий абзац игнорировался. Короче, нужно исключить все пустое (длина слова равно 0) и "не число и не слово" Нехер делать. Но моветон :connie_xmas-moose:
Outlawif Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 Пробел оно лепит к тому слову, после которого этот пробел идет. Поэтому я в скрипте им .Trim() делаю. Регулярками можно что угодно проверять, изначально я их использовал когда был просто текст, тогда одной регуляркой можно было все посчитать и не париться. С коллекцией слов все хуже. Хотя бы потому что это адово медленно работает, несклько секунд оно жует файл на пару сотен слов. Регулярка там нужна, чтобы отсеять "не числа и не слова". Вопрос что включать в слова, а что нет. Если это английские слова, то регулярка для них будет \w+ . Если русские, то лучше перечислить все допустимые буквы. А если китайские? А если смешанные? Нет требований - хрен знает. Идти от обратного еще хуже, всевозможные управляющие символы отсеивать заколупаешься. А может быть это еще и слова должны быть настоящие, т.е. из словаря какого-нибудь? Типа текст "фыва олдж йцук хщш" не содержит слов, а просто кортежи из букв. Если б я был редактором или кем-то работающим с текстами, меня бы это интересовало, например. ЗЫ Твое приложение у меня на компе работать не будет ) И зависит от версии ворда. Единственный нормальный кросс-платформенный и масштабируемый вариант с интерфейсом можно сделать только онлайн, где обработку можно сделать на сервере и она будет 100% всегда работать, а с клиента только файл грузить браузером и результат отдавать.
Голодный котег Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 запускаешь скачанную страничку, . andreyyy, извиняюсь, как ее правильно скачать чтобы все работало? просто "сохранить как" или есть ньюансы?
Outlawif Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 Нет ньюансов. Просто сохранить как и открыть ее в браузере. Она никуда не конектится, инет ей не нужен.
andreyyy Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 Пробел оно лепит к тому слову, после которого этот пробел идет. Поэтому я в скрипте им .Trim() делаю. ну и откуда тогда у меня в коллекции пробел после восклицательного знака ? Там восклицательный знак, переход на следующий абзац и сразу без пробела новое слово. Почему-то именно в этом месте в коллекции пробел появился и я эту закономерность не вкурил. чтобы отсеять "не числа и не слова". Вопрос что включать в слова, а что нет. Если это английские слова, то регулярка для них будет \w+ . Если русские, то лучше перечислить все допустимые буквы. А если китайские? А если смешанные? Нет требований - хрен знает. Вот чтоб не заморачиваться, на каком языке слово, я и пишу об исключении нечисел и не букв. Буквально. Все в коллекции, имеющее первым символом (для простоты) не число и не букву - исключаем. У меня это функции isdigit() и isalpha() В С# - char.IsDigit() char.IsLetter() вроде бы Должно четко исключать все, нас не интересующее независимо от языка. В регулярке х.з. как Я писал "не слова" ? Я опечатался. Имел в виду не букву ЗЫ Твое приложение у меня на компе работать не будет ) Я это понял. Не удивлюсь, если у тебя и дискетку вставить некуда :dc: И зависит от версии ворда. Нет, именно открыть , получить коллекцию words и отпустить работать будет на любой версии. Word.Application винда понимает и запускает имеющуюся версию. Тут никакой специфики не ожидается, которая в версию бы уперлась. Единственный нормальный кросс-платформенный и масштабируемый вариант с интерфейсом можно сделать только онлайн, Насколько я понял, у нас стоит задача с минимум заморочек наиболее просто решить задачу. На рынок ПО я б на VFP ничего не предлагал. Вот когда мне нужно быстренько сложить числа, я открываю Эксель, вбиваю в ячейки числа, протягиваю и жму кнопку автосуммы. Понятно, что это не кросплатформенное масштабируемое решение с интерфейсом, но если задача быренько подсчитать, то мне это проще всего. А может быть это еще и слова должны быть настоящие, т.е. из словаря какого-нибудь? ты понимаешь, что тогда получается, что большая часть форума общается почти без слов ? )
andreyyy Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 Поэтому я в скрипте им .Trim() делаю. обрезка концевых пробелов - то само собой. Так же как и приведение к верхнему регистру, чтобы не получилось, что Хер и хер - разные слова.
Outlawif Опубликовано 18 апреля, 2020 Опубликовано 18 апреля, 2020 приведение к верхнему регистру Это нинада, у регулярок есть флаг нечувствительности к регистру. откуда тогда у меня в коллекции пробел Это точно пробел? Любые управляющие символы могут отображаться как пробел. Надо чаркод смотреть. Может это символы перевода каретки или еще что. Должно четко исключать все Насчет всех языков не уверен и я тут ждал бы подвоха, но в целом подход логичный. Однако какой же это код смелл :( что большая часть форума общается почти без слов ? Это да ) Однако, гугл ИИ обычно даже олбанский понимает, и может с очень высокой степенью вероятности определить, это ошибка в слове или вообще не слово. Вот, может Котику надо что-то такого уровня ))
Рекомендуемые сообщения
Создайте учетную запись или войдите, чтобы комментировать
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти