![]() |
|
|
![]()
|
|
| Sash31 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.12.2006 Где: г. Электрогорск Репутация: нет Всего: нет |
Пишу на BC++B программу для поиска по flat-файлу (текстовая БД)
По запросу программа просматривает файл построчно (fgets) и когда встречает слово "LOCUS" (начло новой записи БД), должна сохранить указатель на эту строку, чтобы можно было к ней вернуться и продолжить чтение файла с неё... Вот, что есть... (но не работает) (((
Подскажите, что не так? Может требуются принципиальные изменения? (Другой метод) Когда мы используем fgets(Str, 100, fp), указатель fp перескакивает на след. строку? |
|||
|
||||
| szz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1289 Регистрация: 31.5.2005 Где: Moscow, Jerusalem Репутация: 1 Всего: 33 |
Ну смотри, во-первый ты рубишь по 100. А вдруг локус порежется? хз какой длины у тебя в файле строки.
Потом - где вообще цикл пробега по всему файлу? У тебя тут только указанные первые 100 читаются и все. Или цикл снаружи где-то? --------------------
|
|||
|
||||
| Sash31 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.12.2006 Где: г. Электрогорск Репутация: нет Всего: нет |
Да, цикл снаружи... Мне казалось, fgets(; 100; ) "режет" до 100 или до конца строки, если тот наступит раньше... Разве нет?
Кстати, в этом файле все строки оканчиваются \n... Может можно как то считывать до \n? типа while (ch != '\') сh = fgetc(fp); ? |
|||
|
||||
| Syrex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 9.2.2006 Где: Москва Репутация: 1 Всего: 1 |
попробуй getline
|
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
да смари дебаггером содержимое NextStr так и найдёшь где ошибка...
-------------------- СУВ, Partizan. |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
я не знаю, что у тебя не работает, но вот я взял твой код и все у меня работает. Возможно ты свою процедуру не правильно вызываешь, но здесь не телепаты, поэтому в будущем приводи весь код!!!
вот код который я накидал за 10 минут:
на форме одна кнопка и Мемо для отладки. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Вот еще примерчик
посмотри, может тебе поможет
На форме 2 кнопки и Мемо. Первая кнопка ищет первое вхождение слова LOCUS, затем нужно использовать вторую кнопку для нахождения всех остальных слов LOCUS в файле. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |