Есть система вложенных папок:
D:\Folder1\Folder101\files1011.txt
D:\Folder1\Folder101\files1012.txt
....
D:\Folder1\Folder102\files1021.txt
D:\Folder1\Folder102\files1022.txt
...
D:\Folder2\Folder201\files2011.txt
D:\Folder2\Folder201\files2012.txt
....
D:\Folder2\Folder202\files2021.txt
D:\Folder2\Folder202\files2022.txt
...
Можно создать текстовый файл, который будет содержать данный список файлов?
Помотри, подойдет ли tree /f >list.txt
Прогу надо на любом языке?
Т.е. нужно пройти по всему диску? Или какие-то определенные папки?
Если не определенные, то рекурсивный перебор всех каталогов. На Делфи - 20-30 строчек проги. Делфи подходит?
(06.08.2009 19:05)GrayFace Wrote: [ -> ]Помотри, подойдет ли tree /f >list.txt
Прогу надо на любом языке?
команда выдает дерево...
Quote:├───Архивы
├───День выборов
│ 01 - А. Кортнев - Выбора.mp3
│ 02 - Чайф - Романс Об Избирательной Урне.mp3
│ 03 - Группа Исполнителей - Казачья.mp3
│ 04 - Uma2rman - Трансвестит Машка.mp3
│ 05 - Серёга - Воровская.mp3
│ 06 - Би2 - Ночной Ларёк.mp3
│ 07 - Иванушки International - Учительница.mp3
│ 08 - Князева Лена - Кричать Без Крика.mp3
│ 09 - Чайф - Куплеты.mp3
│ 10 - М. Башаров, Д. Певцов, Е. Стычкин, О. Фомин - Стоматологи.mp3
│ 11 - Валерий Сюткин - Твист.mp3
│ 12 - А. Макаревич, Г. Мартиросьян - Снежинка.mp3
│ 13 - Ансамбль Карагод - Народная.mp3
│ 2007 - День выборов.jpg
но мне бы полный путь к файлу...
типо D:\Folder1\Folder101\files1011.txt
Паскаль наверное подойдет, мне вообше бы откомпилировать прогу (у меня щас нету никаких языков программирования на компе - VisualBasic есть из Офиса и КорелДрав) и какой нибудь ини-файл для параметров...
Дьякон, нужно "просканировать" конкретную папку, включая все ее подпапки. Весь диск не нужно.
Команда CTRL+B в тотал командере, правда там без полных путей
нет. это мне Берс не поможет.
Мне список нужен, по которому другая прога будет работать...
Если не опередят, напишу сегодня.
Буду очень признателен...
Суть в следующем, есть папки (их очень много, папка Месяц, с подпапками Число (Июнь\Июнь_01, Июнь\Июнь_02) в которых лежат файлы CorelDraw версии 7 (ну или например файлы Ворда (с разрешением doc). Мне их ВСЕ нужно открыть и пересохранить в версии 10 (для Ворда например сохранить в формате docx). Руками это очень утомительно, я сделал что CorelDraw пересохраняет все открытые файлы (т.е. сначало открыть все файлы из директории, запустить макрос, он будет сохранять и закрывать - но этот способ плох тем, что сразу открыть много рекламы (некоторые имеют объем под 100 мб) компьютеры не позволяют, зависают, открывать по одной более правильно.
Вот тестовый результат:
...
А можно полюбопытствовать - а зачем пересохранять файлы в новой версии?
До сих пор мы работаем в Win98 в CorelDraw7. Поскольку была необходимость докупить еще несколько лицензий CorelDraw, купили всем (чтоб все работали в одинаковой версии) CorelDraw Х3 (тогда было другую не купить), а он пашет не менее чем под WinXP (ну или наоборот можно сказать - купили WinXP и для него CorelDraw X3). Но еще мы используем старые шрифты Type1, в X3 они не все правильно работают, при открытии бывает что не отображает форматирование (жирноту), бывает что пропадают символы, или шрифт вообще заменялся). Но если делать макеты сразу в X3 то шрифты работают нормально, т.е. проблема возникает тогда когда пытамся открыть в X3 макеты сделанные в 7 версии. Решение нашли такое: 10 версия CorelDraw нормально открывает 7, а 13 нормально открывает 10, значит все макеты нужно пересохранить в версии 10, а потом работать с ними в 13 и далее уже сохранять в 13.
Не знаю, понятно ли я объяснил?
Конечно понимаю, что это наглость, но нельзя ли немного усовершенствовать программу:
нельзя ли ввести третий параметр - расширение тех файлов которые нужно найти в папках...
Просто оказалось, что в папках всякого мусора дофига (там и jpg, и tif, и psd и пр.), а мне нужны файлы с расширением CDR...
Но если сложно то забейте - в ворде заменой найду...
Моя первая программа на СИ++. Сортировка массива строк.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define pointer *
#define deref *
#define nil 0
typedef char pointer pchar;
void ExchangeStrs (pchar &StrA, pchar &StrB)
{
pchar StrC = StrB;
StrB = StrA;
StrA = StrC;
}
void SortStrArr (pchar Arr[], int ArrSize)
{
int MiddleItemInd = -1;
pchar MiddleItem = nil;
int LeftInd = 0;
int RightInd = ArrSize - 1;
/***/
if (ArrSize == 2)
{
if (strcmp(Arr[0], Arr[1]) >= 0)
{
ExchangeStrs(Arr[0], Arr[1]);
}
}
else if (ArrSize > 2)
{
MiddleItemInd = ArrSize / 2;
MiddleItem = Arr[MiddleItemInd];
while (LeftInd <= RightInd)
{
if (strcmp(Arr[LeftInd], MiddleItem) >= 0)
{
ExchangeStrs(Arr[LeftInd], Arr[RightInd]);
RightInd--;
}
else
{
LeftInd++;
}
}
SortStrArr(&Arr[0], (RightInd + 1));
SortStrArr(&Arr[LeftInd], (ArrSize - LeftInd));
}
}
int main (int argc, pchar args[])
{
const int ARR_SIZE = 5;
pchar strs[ARR_SIZE] = {"ccc", "bbb", "aaa", "ddd", "hello"};
SortStrArr(strs, ARR_SIZE);
for (int i = 0; i < ARR_SIZE; i++)
{
printf("%s\n", strs[i]);
}
}