| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Каждую ночь, в 3 часа, мне в папку копируют свежий файл с неизвестным именем, который приходится искать косвенными методами) В том числе по дате. И при наложении фильтра на таблицу File.SETRANGE(Date, TODAY) в таблице этот файл то есть, то его нет. Т.е. программа отрабатывает в 4 часа, доходит до этой строки, потом я делаю FINDFIRST и вывожу результат в лог. В таблице пусто. Утром проверяю, файл лежит на месте, время у него 3 часа, все как положено. Запускаю свою программу, она его находит) Я думал во времени косяк, что его еще нет на момент ее запуска, но по часам сходится, у файла стоит 3:00, программа запускается в 4:00. 
		
		
		
		
		
		
		
	Никто не сталкивался с такой бедой?)  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			мб так поможет: тыц, или так: тыц-тыц, лично у меня без проблем работает конструкция: 
		
		
		
		
		
		
			Код: SELECTLATESTVERSION;
CLEAR(FileTable);
FileTable.RESET;
FileTable.SETFILTER(Path, ImportPath);
FileTable.SETRANGE("Is a file", TRUE);
IF FileTable.FINDSET THEN BEGIN
  REPEAT
  ...
  UNTIL FileTable.NEXT = 0
END;
				__________________ 
		
		
		
		
	Как только вы проиграете, все ваши прошлые победы забудут.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В смысле установить еще какие-то фильтры? Не, не помогает, я и так накладываю несколько фильтров. Сейчас примерно так написано: 
		
		
		
		
		
		
		
	Код:   ff.WRITE('1');
  f.SETRANGE(Path, '\\users\_MD');
  IF f.FINDFIRST THEN
    ff.WRITE('2');
  f.SETRANGE("Is a file", TRUE);
  IF f.FINDFIRST THEN
    ff.WRITE('3');
  f.SETRANGE(Date, TODAY);
  IF f.FINDFIRST THEN
  REPEAT
    ff.WRITE(f.Name+' '+FORMAT(f.Date));
  UNTIL f.NEXT=0;
  IF f.FINDFIRST THEN
    ff.WRITE('4'); | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			сорь, совсем забыл пару строк сверху забрать, в ответе подправил добавив это: 
		
		
		
		
		
		
			Код: SELECTLATESTVERSION; CLEAR(FileTable); FileTable.RESET; ... 
				__________________ 
		
		
		
		
	Как только вы проиграете, все ваши прошлые победы забудут.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да, CLEAR и RESET не делал, ибо смысла вроде в них нет... попробую сегодня) 
		
		
		
		
		
		
		
	SELECTLATESTVERSION вот эту функция я искал, но не нашел... может поможет. Спасибо за советы.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Код: ...
repeat
  files.setrane(path, 'c:\');
  files.find('-');
  files.setrange(path, 'c:\foo\bar\');
  if files.find('-') then
    movefile;  
until foo = bar;
...
				__________________ 
		
		
		
		
	Как только вы проиграете, все ваши прошлые победы забудут.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Видители, если программа не может в одной директории по какой-то причине найти существующий файл, то как бы нет  гарантии, что она найдет файл в другой директории...  
		
		
		
		
		
		
		
	Или это не для того, чтобы что то найти, а просто туда сюда надо поперемещаться?) Я просто смысла не понимаю таких плясок с бубном и как это должно работать)  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от smoyk
			 
 
			Видители, если программа не может в одной директории по какой-то причине найти существующий файл, то как бы нет  гарантии, что она найдет файл в другой директории...  
		
	Или это не для того, чтобы что то найти, а просто туда сюда надо поперемещаться?) Я просто смысла не понимаю таких плясок с бубном и как это должно работать) 
				__________________ 
		
		
		
		
	Как только вы проиграете, все ваши прошлые победы забудут.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Тоже сталкивался с проблемой, когда NAV не мог найти файл. Действительно, помогает перед своим поиском сходить в папку C: 
		
		
		
		
		
		
		
	Вот мой код, который ищет файл с именем компании в каталоге экспорта и делает инкремент к последнему найденному имени: Код:   IF COPYSTR(ExportPath, STRLEN(ExportPath), 1) <> '\' THEN ExportPath += '\';
  Folder.SETRANGE(Path,'c:\');
  IF Folder.FINDFIRST THEN;
  Folder.SETRANGE(Path, ExportPath);
  Folder.SETRANGE("Is a file",TRUE);
  Folder.SETFILTER(Name, '@' + STRSUBSTNO('%1-Export-%2.xml',Company.Name,'*'));
  IF Folder.FINDLAST THEN ExportName := INCSTR(Folder.Name)
  ELSE ExportName := STRSUBSTNO('%1-Export-%2.xml',Company.Name,FORMAT(1, 0, '<Integer,4><Filler Character,0>'));
  XMLDoc.save(ExportPath + ExportName); | 
| 
	
 |