|
Модераторы: Poseidon |
|
KoSMoS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.12.2006 Репутация: нет Всего: нет |
Помогите,пожалуйста!!!
Пусть в некоторый файл ‘words txt’ построчно записаны слова. Исключить из файла все слова, написанные на русском языке. |
|||
|
||||
mr.Anderson |
|
|||
iOS Lead Developer Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 16 Всего: 128 |
Могу прописать примерный алгоритм. Если не разберешься сам, то напишу код.
1. В разделе Var объявляем переменные f: Text; control: Boolean; str: Array[ 0..1000 ] of String;, из расчета, что в файле не более 1000 слов. 2. Открываем файл на чтение. 3. Считываем построчно через цикл FOR. В цикле: 3.1. Всю строчку обрабатываем посимвольно через вложенный цикл FOR. 3.2. В этом цикле проверяем каждую букву на соответствие одной из букв русского алфавита (эти буквы тоже можно в отдельный массив запихать, как хочешь). Если есть совпадение, то присваиваем CONTROL := TRUE; . 3.3. На выходе из этого цикла ставим условие: если CONTROL = FALSE, то записываем текущую строку как текущий элемент в массив STR. 4. Закрываем файл. 5. Открываем файл на перезапись. 6. Через цикл FOR запихиваем в файл все элементы массива STR. 7. Закрываем файл. Вот тебе алг. Не справишься - скажи, я код дам. |
|||
|
||||
KoSMoS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.12.2006 Репутация: нет Всего: нет |
Slim7.спасибо большое,но я реально сам не справлюсь!!!
|
|||
|
||||
volvo877 |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 2072 Регистрация: 15.11.2004 Репутация: 34 Всего: 116 |
В Паскале? Ну-ну... Попробуй, посмотри, что получится Размер DS ограничен, ты в курсе? 1000 строк - это 255К, тебе доступно только 64К KoSMoS, все проще...
|
||||
|
|||||
mr.Anderson |
|
|||
iOS Lead Developer Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 16 Всего: 128 |
volvo877, здорово. Я бы не догадался, хотя бы потому, что не знал, что можно задать проверку на принадлежность множеству. Хороший метод, я запомню.
|
|||
|
||||
Mercator |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.11.2006 Репутация: 1 Всего: 2 |
sim7, я тоже не знала! ))) Только по-моему с русскими буквами проще можно, если мне память не изменяет (а в Паскале я лет 6 назад писала). По символу спец. функцией узнаешь ее код ASCII и смотришь, попадает ли он в диапазон русских символов таблицы ASCII. Они там вроде подряд идут. По-моему, гораздо быстрее получится.
|
|||
|
||||
volvo877 |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2072 Регистрация: 15.11.2004 Репутация: 34 Всего: 116 |
Упс... Здесь ты ошибаешься... Если бы все было так просто... Не идут они подряд в ДОС-кодировке... Да и быстрее чем со множествами (тем более, гораздо быстрее) вряд-ли получится, это ОЧЕНЬ быстрый тип... Опять же вызов Ord (это имелось в виду под спец. функцией?) тоже занимает время... А зачем, если можно напрямую проверить вхождение во множество самого символа, а не его кода? |
|||
|
||||
KoSMoS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.12.2006 Репутация: нет Всего: нет |
спасибо огромное!!!
|
|||
|
||||
Mercator |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.11.2006 Репутация: 1 Всего: 2 |
volvo877, а как работает проверка вхождения во множество? (Правда, это тему наверно отдельную надо...)
|
|||
|
||||
Правила форума "Центр помощи" | |
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |