Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wiele plików w strumieniu plikowym

Ostatnio zmodyfikowano 2020-06-06 20:14
Autor Wiadomość
kocotian
Temat założony przez niniejszego użytkownika
Wiele plików w strumieniu plikowym
» 2020-06-05 19:18:39
Witam!
Robię programik który musi złapać kilka plików. Normalnie nie byłoby to problemem, jednak nazwy plików pochodzą z argv i chodzi mi o to, że w jednym argumencie może być zarówno jeden plik (przykładowo `plik.pdf`), może być również kilka plików (`{zdjecie.png, esej.pdf}`) lub wszystkie (`*`). Stąd pytanie - czy istnieje możliwość implementacji i jak by to wyglądało?

btw - chodzi mi o coś podobnego do `mkdir -p {zdjecia,filmy}` w linuksie

Z góry dzięki za podpowiedzi!
P-176975
DejaVu
» 2020-06-06 11:21:19
aplikacja.exe parametr1 parametr2 ... parametrN
W main nazwę wywołania jak i parametry otrzymasz poprzez argc i argv.
P-176976
kocotian
Temat założony przez niniejszego użytkownika
» 2020-06-06 13:06:00
Wiem, chodzi mi właśnie o to, że w jednym parametrze argv może znajdować się kilka plików, np:
"{dokument.pdf,dokument2.pdf}"
lub też wszystkie, czyli
*
.

Aktualnie mam pętlę i każdy kolejny plik jest po prostu oddzielnym, kolejnym argumentem, jednak bardzo zależy mi na tym, żeby było to co wyżej.
P-176979
kocotian
Temat założony przez niniejszego użytkownika
» 2020-06-06 15:18:25
Może prościej będzie jeśli wyjaśnię do czego dokładnie ma to służyć - robię 4fun prosty archiwizator plików i przy archiwizowaniu wielu plików wywołanie programu wraz z parametrami aktualnie wygląda tak:
nar -a kod.cpp scr1.png scr2.png
a chcę żeby wyglądało to przykładowo tak:
nar -a {kod.cpp,scr*.png}
oraz żeby była możliwość wybrania wszystkich plików, czyli:
nar -a *
P-176982
pekfos
» 2020-06-06 19:46:31
Pod Linuksem gwiazdka jest interpretowana przez bash i nie trafia do argumentów uruchamianego programu. Jesteś pewien, że to Twój program ma to obsługiwać? A więc np
nar -a \*
P-176984
kocotian
Temat założony przez niniejszego użytkownika
pekfos to geniusz
» 2020-06-06 20:03:04
Wpisałem
nar -a *
 i... zapakowało wszystkie pliki!
Dziękuję, pekfos <3!
P-176985
kocotian
Temat założony przez niniejszego użytkownika
» 2020-06-06 20:14:10
Dla przyszłych użytkowników którzy spotkają się z tym problemem:
We wczesnej wersji programu tylko trzeci argument (
argv[ 2 ]
) zawierał nazwę do pliku. Próbowałem wtedy wpisać * jednak zarchiwizowany został jedynie jeden plik. Potem gdy zrobiłem pętle dla wszystkich kolejnych argumentów nie testowałem już tego. Wygląda to najprawdopodobniej tak, że po wpisaniu:
nar -a *
powłoka bierze wszystkie pliki i podstawia je pod kolejne argumenty, więc działa to teraz, lecz nie działało to wcześniej i w chwili pisania tematu.

Temat zamykam, dziękuję jeszcze raz za odpowiedź
P-176986
« 1 »
  Strona 1 z 1