![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Elyad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Подскажите, как начать читать фаил с конца? Мне надо в файле найти последнее совпадение с заданным шаблоном.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
SetFilePointer и читай дальше...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Elyad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Я пишу программу под Unix. А такой функции там нет.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
и откуда это известно (из первого поста)? тогда используй seekg istream' а -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Elyad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Так же системное программирование!!!
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
но не юникс!!!! посмотри по разделам , там есть для юникса! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| neosapient |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: 3 Всего: 4 |
Я гдето слышал, что для работы с файлами под консоль в win* и *nix системах используют функции с идентичными именами. Надеюсь меня поправят, если я не прав.
В данном случае советую посмотреть функцию (прототип для консоли под винду): int fseek(FILE *fptr, long numbytes, int origin); здесь fptr - указатель на соответствующий файл; numbytes - кол-во байт от точки отсчета для установки текущей позиции указателя файла; origin - один из макросов, определенных в STDIO.H: Макрос - Значение - Точка отсчета SEEK_SET - 0 - Начало файла SEEK_CUR - 1 - Текущая позиция SEEK_END - 2 - Конец файла Также для работы с файлами подойдут (STDIO.H): fopen - открыть файл fclose - закрыть файл putc - записать символ в поток getc - прочитать символ из потока и т.д. Вот еще нашел (IO.H): read - читает буфер данных write - пишет в буфер данных open - открыть файл close - закрыть файл lseek - поиск определенного байта в файле unlink - уничтожает файл |
|||
|
||||
| Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
это стандарт си имхо но в нем нету изголятся надо кса (никогда ей не пользовался) но это именно юниксовая команда, в винде такой нет, хотя в си она реализована Так что вызовы могут быть одинаковы, а вот тонкости реализации той или другой ф_ции надо спрашивать под что пишешь!
хошь я те покажу как тоже работает под гуи виндов? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||
|
|||||
| neosapient |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: 3 Всего: 4 |
Уважаемый, Romikgy.
Не понял, как в анекдоте
Мои слова одобрены или нет? Я лишь хотел сказать, что есть функции которые сделаны под консоль. Так эти функции есть лишь обложки скажем над той же CreateFile (DeleteFile и т.п.) под винду. Я не знаю соответствующие функции под юникс, но предполагаю, что "консольные обложки" могут сработать. Уважаемый, Elyad. Хотел добавить, что функции fseek и lseek лишь указывают позицию, откуда считывать. Но считывание происходить в сторону конца файла (не знаю как по юникс, а под винду только от начала к концу). По этому для считывания с конца файла рекомендую установить указатель на конец файла и в цикле последовательно {считывать по одному байту, а затем смещать указатель на один байт к началу}. Второй вариант, в цикле идя от начала к концу пока не кончиться файл{ найти первое вхождение от текущей позиции если не нашел, то предшествующая позиция была ответом выход из цикла иначе запомнить позицию установить указатель сразу после найденой фразы } А вообще, есть ветка форума под юникс, обратись туда... |
|||
|
||||
| Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
как культурно
кто те сказал что эти ф_ции только для консоли?
и сколько будет так проходить файл хотя бы в 10 метров какое одобрение те еще надо ? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||
|
|||||
| neosapient |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: 3 Всего: 4 |
Под винду в пользовательском режиме эти функции прекрасно работают. Главное подключить STDIO.H и прекрасно работает под консоль и просто WinAPI приложения. А на консоль ссылаюсь так как не знаю заголовочных файлов под юникс.
Вот по этому я привел другой вариант алгоритма
|
||||||
|
|||||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |