Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [Pascal] Исключить из файла все слова |
Автор: KoSMoS 7.12.2006, 20:30 |
Помогите,пожалуйста!!! Пусть в некоторый файл ‘words txt’ построчно записаны слова. Исключить из файла все слова, написанные на русском языке. |
Автор: mr.Anderson 7.12.2006, 20:55 |
Могу прописать примерный алгоритм. Если не разберешься сам, то напишу код. 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 7.12.2006, 21:58 |
Slim7.спасибо большое,но я реально сам не справлюсь!!! |
Автор: mr.Anderson 8.12.2006, 16:21 |
volvo877, здорово. ![]() |
Автор: Mercator 8.12.2006, 17:05 |
sim7, я тоже не знала! ))) Только по-моему с русскими буквами проще можно, если мне память не изменяет (а в Паскале я лет 6 назад писала). По символу спец. функцией узнаешь ее код ASCII и смотришь, попадает ли он в диапазон русских символов таблицы ASCII. Они там вроде подряд идут. По-моему, гораздо быстрее получится. |
Автор: volvo877 8.12.2006, 18:01 |
Упс... Здесь ты ошибаешься... Если бы все было так просто... Не идут они подряд в ДОС-кодировке... Да и быстрее чем со множествами (тем более, гораздо быстрее) вряд-ли получится, это ОЧЕНЬ быстрый тип... Опять же вызов Ord (это имелось в виду под спец. функцией?) тоже занимает время... А зачем, если можно напрямую проверить вхождение во множество самого символа, а не его кода? ![]() |
Автор: KoSMoS 10.12.2006, 14:56 |
спасибо огромное!!! |
Автор: Mercator 11.12.2006, 09:40 |
volvo877, а как работает проверка вхождения во множество? (Правда, это тему наверно отдельную надо...) |