![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Уважаемые спецы помогите решить проблемку. 
		
	
		
		
		
		
		
	
		
		
	
	
	Задача следующая: При анализе документа я создаю столько файлов сколько у меня филиалов. затем раскидываю данны по анализу. Может получиться так что некоторые созданые файлы окажуться пустые. Вопрос заключается в следующем. Каким образом мне их (пустые файлы) лучше ликвидировать, удалить? Проца обработки файлов Код: 
	      AssignFile(F,Param.PatchIN+InFile);
      Reset(F);
      SetLength(Fn,Param.count); 
      for I := 0 to Param.count - 1 do
      begin
       AssignFile(Fn[i],Param.PatchIN+NewFileName(InFile,i));
       Rewrite(Fn[i]);
      end;
      // обработка
      ...
      // конец обработки
      for I := 0 to Param.Count - 1 do
        CloseFile(Fn[i]);
      CloseFile(F);
      DeleteFile(PChar(Param.PatchIN+InFile)); | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 например если входной файл 12345678.123 и 4 филиала то в итоге получается файлы: 
		
	
		
		
		
		
		
	
		
		
	
	
	123456781.123 123456782.123 123456783.123 123456784.123 но реально могут быть заполнены два файла или более. и два из них или меньше будут пустые.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Вариант 1. Раскидавать в памяти, а потом выгружать в файлы только там, где данные есть. 
		
	
		
		
		
		
		
	
		
		
	
	
	Вариант 2. Получать список файлов и читать их длинну. GetFileSize тебе поможет. Одна проблема - надо открывать файл через API-шную функцию, хотя можно его динну получить и из TSearchRec.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 А если в памяти раскидывать то может лучше использовать TStringList? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 type FileInfo = record FileName: string; FileSize: integer; end; Затем объявить переменную: var Files: array of FileInfo, естественно размер массива укажешь с помошью SetLength(Files, N) и по ходу выполнения процедуры заполнить массив, а затем я думаю сам дагадаешься как избавиться от пустых файлов.  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 сп помогло. О такой реализации я даже не догадался. все оказалось гораздо проще... 
		
	
		
		
		
		
		
	
		
		
	
	
	 |