![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с построением цикла [D7]
Avpsol © (2011-09-25 19:31:00)Здравствуйте, у меня проблема с реализацией выборочного сохранения.У меня есть папка(c:\image) в которой имеются изображения в формате tiff они там создаются под номером 1,2,3,4.tif и т.д в каждом файле по одному изображению.Мне нужно по нажатию кнопки взять первые два изображения(лицевую и обратную сторону),соединить их в один файл(multipage) и сохранить в папке(c:\Форма),потом удалить исходные две картинки,и при повторном нажатии на кнопку взять опять первые два файла и сделать тоже самое.С первыми двумя у меня получается(кроме выборочного удаления) а вот со следующими нет он ведь ищет файлы с номером 1,2.tif а они уже 3,4.tif.Нужно как то организовать цикл в цикле все перепробовал не работает.Может кто-нибудь видит где в коде ошибка.Заранее спасибо за помощь.
begin
if TWAIN_BeginMultipageFile('c:\Форма1П\file.tif')=0 then
begin
begin
j:=1;
f:=2;
end;
for i := j to f do
begin
StrFmt(pagefile, 'c:\image\%d.tif', [i]);
hdib := TWAIN_LoadNativeFromFilename(pagefile);
if hdib<>0 then
begin
TWAIN_DibWritePage(hdib);
DIB_Free(hdib);
end;
if j=j+1 then
begin
j:=j+1;
f:=f+2;
end;
if TWAIN_LastErrorCode()<>0 then
break;
end;
end;
TWAIN_EndMultipageFile()
end;
begin
RenameFile('c:\Форма1П\Выходные данные\file.tif','c:\Форма1П\Выходные данные\' + edt1.text + edt2.text + '.tif');
if TWAIN_LastErrorCode()<>0 then
TWAIN_ReportLastError('Невозможно соединить файлы.')
end;
end;
//MyRemoveDir('c:\image');
Омлет (2011-09-26 10:09:00) [41]
while strlist.Count > 1 do
begin
//strlist[0] - первая строка
//strlist[1] - вторая строка
// do something
strlist.Delete(0);
strlist.Delete(1);
end;
avpsol (2011-09-26 10:04:00) [42]Как выбрать первые две строки?
begin
strlist:=TstringList.Create;
strlist.Clear;
strlist.Add('c:\image\.tif');
strlist.LoadFromFile('c:\image\.tif');{Загружаю все файлы из директории}
strlist.Sorted:=True;{Включаю сортировку}
end;
begin
if TWAIN_BeginMultipageFile('c:\Форма1П\file.tif')=0 then
begin
begin
j:=1;
f:=2;
end;
for i := j to f do
begin
StrFmt(pagefile, 'c:\image\%d.tif', [i]);
hdib := TWAIN_LoadNativeFromFilename(pagefile);
if hdib<>0 then
begin
TWAIN_DibWritePage(hdib);
DIB_Free(hdib);
end;
if TWAIN_LastErrorCode()<>0 then
break;
end;
end;
TWAIN_EndMultipageFile()
end;
begin
RenameFile('c:\Форма1П\file.tif','c:\Форма1П\' + edt1.text + edt2.text + '.tif');
if TWAIN_LastErrorCode()<>0 then
TWAIN_ReportLastError('Невозможно соединить файлы.')
end;
end;
//MyRemoveDir('c:\image');
Avpsol (2011-09-26 05:32:00) [43]Спасибо большое,сегодня попробую.
Германн (2011-09-25 23:57:00) [44]
> Ага. И будет у него 29.tif, 3.tif, 30.tif, 31.tif
Это только если он глупый. А если нет, то у него будет 01.tif, 02.tif, 03.tif... 29.tif, 30.tif, 31.tif...
Любой маломальский меломан знает как "пронумеровать" mp3 файлы, чтобы они воспроизводились в нужном порядке!
:)
Омлет (2011-09-25 23:28:00) [45]Жаль, орешник сломан..
> Ega23 © (25.09.11 21:04) [1]
> 2. Отсортируй его по имени
Ага. И будет у него 29.tif, 3.tif, 30.tif, 31.tif...
Servy (2011-09-25 21:42:00) [46]
> if j=j+1 then
Это гениально :).
Ega23 (2011-09-25 21:04:00) [47]1. Загрузи все файлы из директории в TStringList
2. Отсортируй его по имени
3. Выбирай по 2 строки, пока в TStringList что-то есть.