компьютерный форум
Вернуться   Компьютерный форум > Программирование и вебстроительство > Программирование

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 25.07.2005, 17:04   #1
Пользователи
 
Регистрация: 19.07.2005
Сообщений: 5
По умолчанию

День добрый.
Как найти последную строку в файле, что бы его не перебирать до конца.
Файл имеет вид:
123|234|234
2134|234|3254
и тд.




b100d_u7_3r вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
25.07.2005, 17:04
Техник
реклама
По умолчанию

Старый 25.07.2005, 17:45   #2
Пользователи
 
Регистрация: 23.06.2005
Сообщений: 110
По умолчанию

Для какой оси программа?

Для ДОСа:
Что бы найти именно строку такой функции вроде нет, но можно перебрать с конца: с помощью функции fseek поставить индикатор позиции файла в конец, а там пошаманить над смещением этого индикатора.
Chef вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 25.07.2005, 18:50   #3
Пользователи
 
Регистрация: 19.07.2005
Сообщений: 5
По умолчанию

прога под линух. я так и думал что нет
b100d_u7_3r вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 25.07.2005, 20:58   #4
Пользователи
 
Регистрация: 10.09.2004
Сообщений: 985
По умолчанию

Строку - не знаю, символ - если подумать, то можно.
vxk7m вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 26.07.2005, 02:06   #5
Пользователи
 
Регистрация: 19.07.2005
Сообщений: 5
По умолчанию

Блин, символ то это понятно: перехожим со смещением 0 с конца файла и все.
а вот как начало последней записи найти?
А кто-нить знает, можно искать символ с текущей позиции только назад?
И можно ли вообще найти символ
?
b100d_u7_3r вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 26.07.2005, 04:25   #6
Пользователи
 
Регистрация: 23.06.2005
Сообщений: 110
По умолчанию

Цитата:
[b]И можно ли вообще найти символ
Можно, но тебе надо именно
или начало строки (
).

Опять пример для ДОСа т.к. в Линуксах я не силен:
char *ch="";
int i;
FILE *str;
str=fopen("s.txt","rb");
for(i=0;*ch != *"
";i--){
fseek(str,i,SEEK_END);
fgets(ch,3,str);
}

Теоритически выделенные операторы там не нужны, но без них почемуто программа не фурычет
Chef вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 09.11.2005, 17:38   #7
Пользователи
 
Регистрация: 09.11.2005
Сообщений: 268
По умолчанию


Конец файла... Не буду обещать, но есть такая функция EOF (End of file)... или поковыряй failbit... Не знаю ли поможет... но поковырять можешь..
:huh:
sLayer вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 10.11.2005, 16:08   #8
Пользователи
 
Регистрация: 11.10.2004
Сообщений: 607
По умолчанию

2 b100d_u7_3r,
Все просто... тебе поможет обычный for. (С помощью него можно перебирать не тока вперед, но и назад)
Например: (perl)
var $file = sourcefile("command.com"); // функция считывания файла
for($i>=lenght($file);$i; exit(1);}
}
BooMeR вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Текущее время: 23:37. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2