Реклама на сайте Advertise with us

Примитивную win софтину написать надо

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Soul's Buyer

С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740


Передовик Master-X (16.10.2008) Передовик Master-X (01.11.2008) Передовик Master-X (16.11.2008) Передовик Master-X (01.12.2008) Передовик Master-X (16.12.2008) Ветеран трепа Master-X (01.01.2009)
Ссылка на сообщениеДобавлено: 27/01/09 в 22:14       Ответить с цитатойцитата 

Вобщем софтина на час работы с 3-мя перекурами и одним чаепитием. Софтина под вынь, можно консольная, мона с окошком - пофиг.

Суть:

Есть папка с файлами name_xxx.jpg и tn_name_xxx.jpg (файлов много (1000-16000), имена соответствуют друг-другу, отличие только в tn_ в начале одного из файлов).
Есть папка html (в ней одна html страничка и папка img с 10-ком пиксов).

Софтина запускается, спрашивает цифру от 4 до 16-ти и распихивает все файлы в папки 001, 002, 003 и т.д. до 999 (точнее пока файлы не закончатся, 999 это условный максимум) по указанному (от 4-х до 16-ти) количеству файлов (т.е. кладёт скажем 12 файлов name_xxx и 12 tn_name_xxx), при перемещении переименовывает файлы в 1,2,3 etc и tn1, tn2, tn3 etc, и в каждую папку кладёт всё содержимое папки html. Усё, cout << "Done!\n"; icon_smile.gif

Да, это программа - распихиватель галер по папкам icon_smile.gif

Если кому нех чем заняться или есть установленный компилятор и час времени или не хватает на пиво (пива много не бывает)


p.s. php не предлогать - денвер ставить не хочу icon_smile.gif

Последний раз редактировалось: Woland (10/09/11 в 23:00), всего редактировалось 1 раз

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 27/01/09 в 22:25       Ответить с цитатойцитата 

http://www.bambalam.se/bamcompile/
Можно и на пхп

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

1
 

Soul's Buyer

С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740


Передовик Master-X (16.10.2008) Передовик Master-X (01.11.2008) Передовик Master-X (16.11.2008) Передовик Master-X (01.12.2008) Передовик Master-X (16.12.2008) Ветеран трепа Master-X (01.01.2009)
Ссылка на сообщениеДобавлено: 27/01/09 в 22:33       Ответить с цитатойцитата 

Stek: Фигасе извращение какое ... но спасибо, не знал, что такое в природе есть icon_smile.gif



Не, лучше на C всё же, там файлов до чёрта, на таком вот перекомпиленном в exe php боюсь софтина будет раком вставать, да и вообще мне извращений в работе хватает icon_smile.gif

0
 



С нами с 19.05.08
Сообщения: 1894
Рейтинг: 3625


Передовик Master-X (16.06.2010) Передовик Master-X (01.07.2010) Передовик Master-X (16.07.2010) Передовик Master-X (16.05.2011) Передовик Master-X (01.07.2012) Ветеран трепа Master-X (16.07.2012)
Ссылка на сообщениеДобавлено: 27/01/09 в 23:04       Ответить с цитатойцитата 

Можно на Java. По производительности соревнуеться с С. Но придёться поставить JVM (Java Virtual Mashine) . Хотя вероятно она и так уже стоит.

1
 

Soul's Buyer

С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740


Передовик Master-X (16.10.2008) Передовик Master-X (01.11.2008) Передовик Master-X (16.11.2008) Передовик Master-X (01.12.2008) Передовик Master-X (16.12.2008) Ветеран трепа Master-X (01.01.2009)
Ссылка на сообщениеДобавлено: 27/01/09 в 23:11       Ответить с цитатойцитата 

Можно, только у меня нет желания идти на sun.com и ставить среду для java, поэтому лучше - написать на C icon_smile.gif

0
 



С нами с 19.07.08
Сообщения: 110
Рейтинг: 218

Ссылка на сообщениеДобавлено: 28/01/09 в 00:43       Ответить с цитатойцитата 


честно говоря такие "программы" на wsh надо писать. вот код на js
Код:

var PixCount2Gallery = 2
var dir = ".\\";
var FileMatch = /name_.*?jpg/gi
var AddFolderName = "html"

var fso = new ActiveXObject("Scripting.FileSystemObject")
var fc = new Enumerator(fso.GetFolder(dir).Files);
var CurrentCreatedFolder = 1;
var FilesInCurrentFolder = 0;

for (; !fc.atEnd(); fc.moveNext()) {
   var f = fc.item();
   if (f.Name.match(FileMatch)) {
   if (FilesInCurrentFolder == PixCount2Gallery){
      FilesInCurrentFolder = 0;
      CurrentCreatedFolder++;
   }

   if (!(fso.FolderExists(CurrentCreatedFolder))){
      var Folder = fso.CreateFolder(CurrentCreatedFolder)
   }
   FilesInCurrentFolder++;
   var NewFileName = FilesInCurrentFolder+".jpg"
   var NewTNFileName = "tn"+FilesInCurrentFolder+".jpg"
   var TNFileName = "tn_"+f.Name
   fso.CopyFile(f.Name, CurrentCreatedFolder+"/"+NewFileName, true)
   fso.DeleteFile(f.Name)
   if (fso.FileExists(TNFileName)){
      fso.CopyFile(TNFileName, CurrentCreatedFolder+"/"+NewTNFileName, true)
      fso.DeleteFile(TNFileName)
   }
   fso.CopyFolder(AddFolderName, CurrentCreatedFolder+"/"+AddFolderName, true)
   }
}

применять: создать файл с расширением js, скопировать в него этот код, подправить переменную PixCount2Gallery под себя (число пиксов в галерее)
ну и запустить на исполнение smail104.gif
ps если кто-то скажет что писать скрипты под виндовс - извращение - он будет глубоко не прав )

in da crysis

8
 

Soul's Buyer

С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740


Передовик Master-X (16.10.2008) Передовик Master-X (01.11.2008) Передовик Master-X (16.11.2008) Передовик Master-X (01.12.2008) Передовик Master-X (16.12.2008) Ветеран трепа Master-X (01.01.2009)
Ссылка на сообщениеДобавлено: 28/01/09 в 02:05       Ответить с цитатойцитата 

SomeVar: Спасибо!

У меня вышел такой вариант в итоге (с файлами с 1-цы и с копированием содержимого папки с картинками + html страницы (а не папки html) ... если что - я не имею понятия о синтаксисе js, не пинать icon_smile.gif ):

Код:

var PixCount2Gallery = 12 // по сколько пиксов в папку
var dir = ".\\";
var FileMatch = /name_.*?jpg/gi
var AddFolderName = "images" // папка с картинками диза
var HtmlFileName = "index.html" // имя html паги

var fso = new ActiveXObject("Scripting.FileSystemObject")
var fc = new Enumerator(fso.GetFolder(dir).Files);
var CurrentCreatedFolder = 1;
var FilesInCurrentFolder = 1;

for (; !fc.atEnd(); fc.moveNext()) {
   var f = fc.item();
   if (f.Name.match(FileMatch)) {
   if (FilesInCurrentFolder > PixCount2Gallery){
      FilesInCurrentFolder = 1;
      CurrentCreatedFolder++;
   }

   if (!(fso.FolderExists(CurrentCreatedFolder))){
      var Folder = fso.CreateFolder(CurrentCreatedFolder)
   }
   var NewFileName = FilesInCurrentFolder+".jpg"
   var NewTNFileName = "tn"+FilesInCurrentFolder+".jpg"
   var TNFileName = "tn_"+f.Name
   fso.CopyFile(f.Name, CurrentCreatedFolder+"/"+NewFileName, true)
   fso.DeleteFile(f.Name)
   if (fso.FileExists(TNFileName)){
      fso.CopyFile(TNFileName, CurrentCreatedFolder+"/"+NewTNFileName, true)
      fso.DeleteFile(TNFileName)
   }
   fso.CopyFolder(AddFolderName, CurrentCreatedFolder+"/"+AddFolderName, true)
   fso.CopyFile(HtmlFileName, CurrentCreatedFolder+"/"+HtmlFileName, true)
   FilesInCurrentFolder++;
   }
}


Проверил на паре тысяч файлов - работает icon_smile.gif

Ну тогда вопрос снят - я так понял не найдётся таки энтузиаста, который запустит компилятор, чтобы написать на С icon_smile.gif

0
 



С нами с 19.07.08
Сообщения: 110
Рейтинг: 218

Ссылка на сообщениеДобавлено: 28/01/09 в 06:52       Ответить с цитатойцитата 

ну можно было в принципе и на си наваять, просто особой наобходимости в этом нет в данном случае icon_smile.gif
а насчет копирования содержимого директории html вместо самой директори - ага, это мой косяк - тз не дочитал.
в принципе если что еще пофиксить там надо -пиши, исправлю )

in da crysis

8
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор сайта

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »