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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2013, 10:44   #1
KIG
 
Регистрация: 01.08.2013
Сообщений: 4
По умолчанию Не записываются файлы txt

Добрый день.

Пишу информацию в файлы (33 файла) периодически (интервал 10 минут). Запись выполняю в теле дополнительного потока следующим образом (остальные файлы пишутся аналогично):

Код:
void __fastcall dataprocessing::LogDPMtk(AnsiString LMtk)
{
 FileRename(LogDPP,LogDP_Vlm);
  LogDP.open(LogDPP.c_str(),ios::app);//--- Добавил
   LogDP<<endl<<DateToStr(Time).c_str();
   LogDP<<endl<<TimeToStr(Time).c_str();
   LogDP<<endl<<LMtk.c_str()<<endl;
  LogDP.close();
}
//---------------------------------------------------------------------------
void __fastcall dataprocessing::Logi(char g[], int*Log_mas, int Len_mas)
{
 int Log_ind;
 CurrentFile_log=ExtractFilePath(Application->ExeName)+"Архив №"+Form1->Table1->FieldByName("ID")->AsString+"\\Logs\\Log №"+g+".txt";;
 FileRename(CurrentFile_log,1000000);

LogDP.open(CurrentFile_log.c_str(),ios::app);

 LogDP<<DateToStr(Time).c_str()<<endl;
 LogDP<<TimeToStr(Time).c_str()<<endl;

 for (Log_ind=0; Log_ind<Len_mas; Log_ind++)
  LogDP<<IntToStr(Log_mas[Log_ind]).c_str()<<endl;

 LogDP<<endl<<endl;

LogDP.close();
LogDPMtk(" Logi ");
}

void __fastcall dataprocessing::FileRename(AnsiString FileName1, long FileVolume1) //FileVolume1 - в байтах задается
{
 if (FileExists(FileName1.c_str()))
	{
	 AnsiString CFileNew=FileName1;
	 long FileLen = 0; struct _finddata_t fData;
	 int res = _findfirst(CFileNew.c_str(), &fData);
	  if (res > 0) FileLen = fData.size;
	   if(FileLen>FileVolume1)
		{
		 CFileNew.Insert("_"+DateToStr(Time)+"_"+TimeToStr(Time),CFileNew.Length()-3);
		 CFileNew=StringReplace(CFileNew,":",".",TReplaceFlags()<<rfReplaceAll);
		 CFileNew[CFileNew.Pos(".")]=':';
		 RenameFile( FileName1.c_str(),CFileNew.c_str() );
		}
	}
}

void __fastcall dataprocessing::Execute()
{
 do {
if(Control)  
{
   FileRename(CurrentFile_Co,1000000);

 fileOsc.open (CurrentFile_Co.c_str(),ios::app);

   fileOsc<<DateToStr(Time).c_str()<<";";
   fileOsc<<TimeToStr(Time).c_str()<<";";

	 for(doz_ind=0; doz_ind<55; doz_ind++)
	  {
	   if(GPS_K_st[doz_ind]==0)
		{ fileOsc<<"0"; GPS_K_st[doz_ind]='!'; LogDPMtk(" K1 ");}
		 else fileOsc<<(char)GPS_K_st[doz_ind];
	  }

   fileOsc<<endl<<endl;

fileOsc.close();
Logi("12",&GPS_K_st[0],70);
Control=0;
}
sleep(5);
}
while(!Terminated)
}
При этом через некоторое время начинают создаваться пустые файлы, форма программы начинает просвечивать (комп подвисает). Подскажите, пожалуйста, что я делаю не так?
KIG вне форума Ответить с цитированием
Старый 15.08.2013, 10:01   #2
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

В процессе работы результаты выводятся куда-нибудь? Если нет - можно вывести и там уже посмотреть что не так.
Baburek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте как экспортировать строки в txt файлы с имеющимся текстом. gremlintv2 Microsoft Office Excel 7 09.03.2013 21:17
вместо 0 и 1 в массив из файла записываются 48 и 49 Faton 11 Общие вопросы C/C++ 9 08.03.2013 14:36
Работа с txt файлами, библиотеки, заголовочные файлы (C++) Alendorff Помощь студентам 1 29.02.2012 20:05
не записываются данные по указанному адресу s2dentishe Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 27.05.2010 14:42