|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
сп помогло. О такой реализации я даже не догадался. все оказалось гораздо проще...
|