Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2009, 12:46   #1
Rustik2
Пользователь
 
Регистрация: 08.10.2009
Сообщений: 14
По умолчанию Как считывать с txt файла только новые данные

Всем доброго дня. У меня была проблема по обработке данных txt файлов. Мне нужно было оперативно видеть изменения в файле и оперативно считывать эти изменения. Эту проблему мне помог решить mOnax (огромное ему спасибо) все бы ничего но программа при каждой новой записи выводит все содержимое файла целиком, а этот txt файл очень большой по объему записей, пока она считывает все данные и выводит это на экран проходит очень много времени, как написать код программы так чтобы она считывала только новые данные (а не весь файл целиком).
вот что я имею на сегодняшний день:

Код:
#include <iostream>
#include <fstream>
#include <windows.h>
#include <string> 

using namespace std;

int fileSize(char*) ; 
void showText(char*) ;

void main()
{
	setlocale(LC_ALL,"Russian") ;
	char* fileName = "1.txt" ; 
	int k = 0;
	while(1)
	{
		int x = fileSize(fileName) ;
		Sleep(1000);
		int y = fileSize(fileName) ;
			if(y!=x)
			{	
				k++ ;
				showText(fileName);
				cout << "всего файл изменен: " << k << " раз" << endl ;
			}
	}
	system("pause");
}

int fileSize(char* name)
{
	ifstream file(name) ;
	file.seekg(0, ios::end); 
	int size = file.tellg();
	file.close() ;
	return size ;
}

void showText(char* name)
{
	string str ; 
	system("cls");
	cout << "файл изменен, текущее содержимое: " << endl << endl;
	ifstream file(name) ;
	while(!file.eof())
	{
		getline(file, str);
		cout << str << endl;
	}	
	file.close();
}

Последний раз редактировалось Stilet; 27.10.2009 в 16:54.
Rustik2 вне форума Ответить с цитированием
Старый 27.10.2009, 16:53   #2
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

только новое... а ты будешь добавлять новые записи только в конец файла или там в середину или в начало?
Olejik вне форума Ответить с цитированием
Старый 27.10.2009, 19:26   #3
Rustik2
Пользователь
 
Регистрация: 08.10.2009
Сообщений: 14
По умолчанию

Данные добавляются только в конец файла

Последний раз редактировалось Rustik2; 27.10.2009 в 19:41.
Rustik2 вне форума Ответить с цитированием
Старый 27.10.2009, 19:48   #4
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

ну а что если как то например при добавлении файла там строки, перед ней поставить...ммм ну ни знеаю.... символы какие нить... на твое усмотрение, там потом открываешь и при нахождении этой строчки даешь программе понять что дальше идет - новенькое и выводить, потом удаляешь строчку ту с символами и в конец файла опять строчку заполняешь.
ИЛИ.
можно воспользоваться фун-ей CreateFile... там как то можно пропускать символы...определенное кол-во, просто при открывании первом, читаешь кол-во символов, сохраняешь их куда-нить, закрываешь, программа открывает файл, пропускает это кол-во символов и проверяет есть ли там что-то...нету, значит сообщение об этом и выход иначе - выводит свеженькую инфу, вычисляет скока символов, суммирует с прошлым числом и перезаписывается... вот )
Olejik вне форума Ответить с цитированием
Старый 28.10.2009, 10:42   #5
Rustik2
Пользователь
 
Регистрация: 08.10.2009
Сообщений: 14
По умолчанию

нет добавлять я не че не могу, а вот второй вариант может быть полезным.
Rustik2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как оперативно считать данные из txt файла Rustik2 Общие вопросы C/C++ 8 10.10.2009 12:40
Как считывать из файла построково? Dimedrolum Общие вопросы C/C++ 3 02.10.2009 21:13
Как считывать данные с COM,LPT порта и нарисовать график Sergiu Фриланс 2 22.12.2007 11:53
как считывать информацию с doc файла ar4i Общие вопросы Delphi 2 11.12.2006 12:52
как считать данные с Txt файла? Alar Общие вопросы Delphi 0 29.10.2006 20:12