Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

пОМОГИТЕ с пОИСКОМ

5.9K
03 декабря 2003 года
laime
1 / / 02.12.2003
такая ерунда значит.мне надо маленький сравочник телефонный накидать.беру значит создаю txt туды
например кидаю:
lopa 45678
kopa 45566
gopa 34356
dupa 45464
запускаю поиск
void __fastcall TForm1::poiskClick(TObject *Sender)
{
fopen("serega.txt","rt+");
//fseek (myfile,0L,SEEK_SET);
strcpy(key,familia->Text.c_str());
do
{fscanf(myfile,"%s",s);

ShowMessage(s1);
if (feof(myfile)|| !strcmp(s,key)) break;
}
while(true);
fclose(myfile);
if (!strcmp(s,key))
ShowMessage(AnsiString(s);
}
key это че надо искать, s-в какой строке.
так он мне находит только когда s выводит,он выводит только слово по которому я искал,а телефон не выводит.как мне это порешить то
487
07 декабря 2003 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by laime
такая ерунда значит.мне надо маленький сравочник телефонный накидать.беру значит создаю txt туды
например кидаю:
lopa 45678
kopa 45566
gopa 34356
dupa 45464
запускаю поиск
void __fastcall TForm1::poiskClick(TObject *Sender)
{
fopen("serega.txt","rt+");
//fseek (myfile,0L,SEEK_SET);
strcpy(key,familia->Text.c_str());
do
{fscanf(myfile,"%s",s);

ShowMessage(s1);
if (feof(myfile)|| !strcmp(s,key)) break;
}
while(true);
fclose(myfile);
if (!strcmp(s,key))
ShowMessage(AnsiString(s);
}
key это че надо искать, s-в какой строке.
так он мне находит только когда s выводит,он выводит только слово по которому я искал,а телефон не выводит.как мне это порешить то



Хех. Знаешь в чем прикол?
Угадай что будет в s после операции
fscanf(myfile,"%s",s); (да и любого scanfa впрочем) на примере строки
"lopa 45678" ?
в s у тебя будет находиться только "lopa". Она считывает у тебя строку до первого пробела.
Вообще, я никогда не использую построчное чтение из файла. Обычно - гружу файл целиком в память (если размер не велик) или использую постраничный доступ. А можно сделать просто замапить файл в память и работать с ним как с указателем на память (см. CreateFileMapping и MapViewOfFile).
Тогда тебе достаточно будет сделать:
entry=strstr(fptr,key); - где fptr указатель на замапленную память для файла.
entry будет указывать на начало нужной тебе строки или будет NULL если строка не найдена. Ну а конец нужной тебе строки будет либо закрываться \r\n либо будет концом образа памяти. Вот собсно и все.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог