Może ktoś ma prostszy sposób, ale ja tak robię i daję radę ;-)
Scalak 2009-03-02 09:15:37
jeśli aktualne to wyemancypowałem łatwiejszy sposób ;) -> patrz forum
pps 2009-03-02 10:40:15
ja w przerwie w robocie machnąłem skrypcik w pythonie, ale skoro się spóźniłem, to nie zaśmiecam...
larek 2009-03-02 10:46:46
Total Commander ma też możliwość eksportu nazw plików do pliku tekstowego notatnika: zaznaczasz pliki, a póżniej wybierasz "zapisz wybór do pliku" w menu "Zaznacz". Nastepnie jest podobnie, jak napisał Psh: robi się tabelkę w excelu z trzema kolumnami - "przedrostek", nasza nazwa pliku, zakończenie. Później wystarczy w 4 kolumnie użyć funkcji ZŁĄCZ.TEKSTY(kom.1,kom.2,kom.3) i excel połączy te komórki w jedną całość.
golem14 2009-03-02 10:53:48
Zassałem te 177MB, rozpakowałem i spakowałem ponownie darmowym WinUHA(-rkiem) na max kompresji, wynik 129MB. Może czas na przesiadkę?
pps 2009-03-02 11:07:11
A nie szybciej tak:
python templater.py c:temp*.png template.html page.html output.html
Czas dzialania skryptu - w porównaniu z Excelem - pomijalny ;)
Opis:
python teplater.py - uruchomienie skrytpu
c:temp*.txt - folder i filtr plików
template.html - plik z fragmentem tekstu, do którego "wciskamy" nazwę pliku, np.:
$(fn) page.html - plik z tekstem, do ktorego wciskamy tyle linijek tekstu, ile plików załapało się do przetwarzania, np.:
Sprobujemy...
output.html - to co page.html, ale zamiast $(template) jest wygenerowana lista, czyli w efekcie na stronce znajdą się wszystkie pliki txt ze wskazanego folderu.
Oczywiście pozostaje kwestia odpowiedniej modyfikacji plików template.html i page.html, ale to już nie ja ;)
Aha, zero obsługi błędów w poniższym kodzie...
Kod (templater.py):
--------------------------------------------
-----------------
import os, sys
val1_repl = '$(fn)'
val2_repl = '$(template)'
def main():
if len(sys.argv) < 5:
return
directory = os.path.normpath(sys.argv[1])
template = sys.argv[2]
page = sys.argv[3]
output = sys.argv[4]
if os.path.isdir(directory):
lstd = os.listdir(directory)
else:
lstd = os.listdir(os.path.dirname(directory))
mask = os.path.basename(directory)[os.path.basename
(directory).find('.')+1:]
lstd = [x for x in lstd if x.endswith(mask)]
filetemp = open(template, 'r')
tmpl = ''.join(filetemp.readlines())
filetemp.close()
for i in range(len(lstd)):
lstd[i] = tmpl.replace(val1_repl, lstd[i])
injection = ''.join(lstd)
filetemp = open(page, 'r')
tmpl = ''.join(filetemp.readlines())
filetemp.close()
tmpl = tmpl.replace(val2_repl, injection)
filetemp = open(output, 'w')
filetemp.writelines(tmpl)
filetemp.close()
return
if __name__ == '__main__':
main()
--------------------------------------------
-----------------
pps 2009-03-02 11:07:42
Heh, teraz bana dostanę za śmieci :D
Pozdrawiam wszystkich!
pps 2009-03-02 11:11:33
Wcięcia... Jasna chorobcia... Dobra, archiwum z plikami tutaj:
http://pps.w.interia.pl/templater.7z
Naprawdę bardzo przepraszam za powyższe...
Kaz 2009-03-02 13:10:27
Bardzo dziekuje wszystkim za porady, a nawet skrypty! Po poludniu wszystko przetestuje.
Golem - metoda ultra w 7z daje wynik 105MB, wiec jeszcze nie czas na zmiany :). Przyznaje sie do bledu - widocznie jakis czas temu ustawilem sobie mniej wydajna kompresje w TuGZip, zapomnialem o tym i dlatego plik na serwerze ma az 178MB. Ale to sie zmieni w nastepnym podejsciu :)
ptb 2009-03-02 13:34:10
To ja jeszcze dodam swoje trzy grosze :)
Mozna to bardzo łatwo zrobić pisząc krotki skrypt w bashu
for f in *; do echo "
"; done
i koniec.
Jak ktoś nie ma basha pod Win to ściąga MSYS-1.0.10.exe
z mingw.sf.net
http://sourceforge.net/project/downloading.php?groupname=mingw&filename=MSY
S-1.0.10.exe&use_mirror=garr
Potem przy instalacji cały czas enter. Po instalacji
Start->Programy->MinGW->MSYS->msys (lub MSYS na pulpicie)
i później np.
cd "c:moje pliki"
for f in *; do echo "
"; done
a jak chcemy wynik zapisać do pliku 'wynik.txt' to
for f in *; do echo "
"; done >wynik.txt
Może się to komuś przyda :-)
ptb 2009-03-02 13:37:49
Aha no tak filtr backslashy :-) Dokladnie jest tak
src=(backslash)" oraz po $f jest (backslash)". Po prostu
cudzysłów w środku musi zaczynać się od backslasha.
AtariManiac 2009-03-02 13:48:43
Dzięki za update! Ta strona wymiata. :)
Amun-Ra 2009-03-02 18:25:45
Najprościej listę plików zapisać tak:
tree /F /A > struktura.txt
Tdc 2009-03-03 05:00:10
Mi się ten rys bardzo podoba ;)
Programy się zmieniają a mamy to samo.. :D:D
Kaz 2009-03-03 05:05:09
Ja mam inna teorie - ci panowie sa bezideowi, pasuje im kazdy program, ktory pozwala zachowac wladze i pozycje.
Monsoft 2009-03-03 07:30:14
Ciekawy ten MSYS. Ja uzywam normlanego przekompilowanego GNU Basha, ale widze srodowisko Msys'a bardziej nasladuje cygwina i chyba musze mu sie dokladniej przyjrzec.
tdc 2009-03-05 00:56:12
Kaz: a tak, tak to było zamierzone przez autora. Ja to nieco uwspółczesniłem ;)