Próbowałem na własną rękę stworzyć program, który automatycznie dodawałby tagi do odpowiednich linii textu.
Wszystko miało się opierać na tym, że w jednym pliku tekstowym było by coś takiego
Byłby to sam “czysty” tekst z numerkami w tagach na początku lini. Natomiast drugi, o takiej samej nazwie, tyle, że w innym katalogu zawierałby wiki kod z wyłącznie “czystym” tekstem, czyli
Teraz chciałbym, aby cały ten tag z pierwszego pliku
został dodany do tego drugiego bez naruszania zawartości (wikikodu), tak, żeby można to było potem zaimportować do wikii i poprawnie się wyświetlało.
Zależy mi na tym, żeby wystarczyło wprowadzić do programu, samą ścieżkę do katalogu z plikami, a nie pojedyncze pliki z osobna, bo program będzie używany, do przetwarzania dużych ilości plików.
Myślałem, o tym, żeby wykonać to, przez cmd, na zasadzie porównywania dwóch takich samych ciągów znaków i późniejszym dodawaniu tagu, niestety pomysł nie wypalił.
Jeśli ktoś wiedziałby jak wykonać prosto taki, programik, do automatycznego (użytkownik podawałby tylko ścieżkę do katalogu z plikami) przetwarzania w taki sposób plików tekstowych to byłbym bardzo wdzięczny
Raczej nie znajdziesz programu o tak specyficznej funkcjonalności, ale nie ma problemów aby napisać skrypt samemu albo zlecić to komuś. Wnioskując z opisu to można to prosto zrobić w Perlu, Pythonie, Ruby czy nawet bashu. Pytanie czy znasz jakieś narzędzie/język skryptowy którym potrafiłbyś zrealizować to? Jeśli sam nie potrafisz tego zrobić i liczysz na to, że ktoś z forum napisz dla Ciebie ten skrypt to daj więcej szczegółów i przykładowe dane (przed przetworzeniem oraz jak to ma wyglądać po przetworzeniu).
[[Kategoria]]
== Dialogi ==
=== I ===
*A: Jutro jadę nad rzekę.
To jest fragment wikiikodu. Ten wikikod miałby nazwę 1.txt i byłby w katalogu wikii. Równolegle do katalogu wikii, byłby katalog zrodlo z plikiem txt o takiej samej nazwie jak ten z wikiikodem. Różnica była by taka, że ten drugi plik, miałby taką zawartość:
[6582]Jutro jadę nad rzekę.
I teraz chciałbym, żeby program utworzył nowy (trzeci) plik o takiej samej nazwie, lub zmodyfikował jeden z istniejacych tak, aby efekt finalny był taki:
[[Kategoria]]
== Dialogi ==
=== I ===
*A: [6582] Jutro jadę nad rzekę.
Mógłbym to zrobić w Perlu lub Pythonie, ale nie na dziś i nie na jutro (nie mam zbyt czasu). Czy pasuje Ci jeden z tych języków programowania? Jeśli chciałbyś uruchomić taki skrypt musiałbyś mieć interpreter Perla lub Pythona - więc dochodzi potrzeba jego instalacji. Jeśli pasuje Ci to, to napisz na PW. Jednak tak jak piszę, mógłbym się za to zabrać pojutrze. Być może do tego czasu pomoże Ci ktoś inny? Tak więc, jeśli nadal potrzebowałbyś takiego skryptu napisz na PW jutro wieczorem.
W pierwszej lini rozumiem, że treba podać ściezki do katalogów z plikami. Ja podałęm odpowiednio *G:\wikii* i *G:\zrodlo*
natomiast w drugiej lini nie wiedziałęm co wpisać i zostawięłm tak jak było. W 4 lini też zostawiłęm wszystko po staremu, bo nie wiedziałęm o jakie parametry chodzi. Jak nie trudno się domysleć, po wciśnięciu przycisku Run w PowerShellu na dolnej belce pojawił się komunikat, że skrypt nie może zostać uruchomiony, ponieważ jest niestabilny, czy coś w ten deseń…
Fiołek , jeśli można by prosić jakieś wytłumaczenie co do tego kodu
Pierwsza linijka to parametry podawane do skryptu(z linii poleceń) - pierwszy to _plik_ z wikikodem, drugi to plik z liniami “[tag]tekst”. Następnie sprawdzamy czy podano parametry.
Dalej: wczytujemy _linie_ z pliku podanego jako drugi parametr potem wczytujemy tekst z pliku z pierwszego parametru. W pętli foreach wyciągamy tekst z linii “[tag]tekst” wyrażeniem regularnym(można prościej: tekst jest za pierwszym “]”) i zmieniamy w tekście z wikikodem wyciągnięty tekst na [tag]+tekst. Na końcu zapisujemy do pliku zmieniony wikikod.
PS C:\Users\Piotrek> cd
PS C:\Users\Piotrek> G:
PS G:\> ./skrypt.ps1 G:\wiki\1.txt G:\zrodlo\1.txt
The term './skrypt.ps1' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and
try again.
At line:1 char:13
+ ./skrypt.ps1 <<<< G:\wiki\1.txt G:\zrodlo\1.txt
PS G:\> "./skrypt.ps1 G:\wiki\1.txt G:\zrodlo\1.txt"
./skrypt.ps1 G:\wiki\1.txt G:\zrodlo\1.txt
PS G:\>
Ja taki pewien bym nie był Komunikat błędu wyraźnie mówi, że taki plik nie istnieje. Prawdopodobnie masz to zapisane pod “skrypt.ps1.txt”(ukrywanie rozszerzeń), a nie tak jak być powinno.