Spoji sve cpp dokumente u jedan dokument

2

Spoji sve cpp dokumente u jedan dokument

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

hvala puno, u folderu sam spremio fajlove main.cpp i output.cpp, došao sam do foldera (putem command prompt) koristeći komandu cd (change directory), i pokrenuo komande

cpp-merge main.cpp

cpp-merge --output output.cpp main.cpp

ali nakon ovoga u main.cpp i output.cpp nema ništa...
možda ova aplikacija ne radi ono što je zamišljeno, ili sam opet nešto pogriješio?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Napisano: 09 Apr 2022 22:51

Druže, ako prosleđuješ main.cpp kao argument, u tom fajlu moraš da imaš main metodu svog C++ programa. Da li je tako u tvom slučaju?

Dakle, poslednji argument ove konzolne aplikacije je putanja do fajla gde se nalazi main metoda tvog programa. Ne treba ti nikako da spremaš main.cpp i output.cpp fajlove, već samo treba da pozoveš ovu aplikaciju i predaš joj putanju do fajla gde si smestio main metodu svog programa, kao i opciono putanju do fajla u kome želiš da sačuvaš rezultat ovog spajanja koda.

Dakle:

cpp-merge -o <putanja do fajla u koji želiš da sačuvaš rezultat> <putanja do fajla gde se nalazi main metoda zvog programa>

Putanje navodiš relativno ili apsolutno, svejedno je. Za početak predlažem da navodiš apsolutne putanje (to je ono C:/..., znači puna putanja do fajla), pošto vidim da ti pojam relativnih putanja i nije baš jasan.

Dopuna: 09 Apr 2022 22:54

Ustvari, okej, vidim promenio si radni direktorijum na direktorijum gde se nalazi tvoj izvorni kod. U kom fajlu u tom lab direktorijumu se nalazi main metoda tvog programa? Da li je to main.cpp fajl?



offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

Izvini ali ja ne znam šta je main metoda. Ako misliš na metodu koja treba da ovo spoji, meni jedino pada na pamet da to može biti javascript fajl u kome je napisana aplikacija, a on se nalazi na desktopu u folderu cpp merge. (i još negdje globalno ali ne znam tačno gdje).

main.cpp fajl u lab direktorijumu je prazan

možeš li mi objasniti šta je main metoda i kako da je napišem?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Napisano: 09 Apr 2022 23:46

Kako to da pišeš C++ program a ne znaš šta je main metoda? Gde kreće izvršenje tvog programa? Možeš li da nam pokažeš svoj kod?

Dopuna: 09 Apr 2022 23:48

amar54k ::main.cpp fajl u lab direktorijumu je prazanAjmo jedno logičko pitanje: Kada spojiš prazan fajl ni sa čim, šta dobiješ? Smile

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

vasa.93 ::Ajmo jedno logičko pitanje: Kada spojiš prazan fajl ni sa čim, šta dobiješ? Smile
stvarno ima logike Smile
lab direktorij ima oko 30 cpp fajlova, počinje sa lab1z1 - Naziv.cpp
main metoda (tj. funkcija) je sastavni dio svakog c/cpp programa. Da li to znači da main metoda koju ti spominješ je ustvari prvi cpp fajl u lab direktoriju?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Napisano: 10 Apr 2022 4:12

Dakle, ti imaš više zasebnih C++ programa i želiš da ih sve spojiš u jedan fajl? Ako u svakom tvom fajlu imaš main metodu, i sadržaj svih fajlova se smesti u jedan fajl (output.cpp), imaćeš više main metoda u tom fajlu. Da li misliš da je tako nešto ispravno?

Ne mogu da tvrdim sa sigurnošću, ali prilično sam ubeđen da ovaj alat ne može da ti pomogne ovde, jer, ako je tačna pretpostavka iznad, to što želiš da uradiš uopšte nema nikakvog smisla. Mislim sa strane jezika i kompajlera itd. Mislim da ćeš morati to ručno, ili da izmeniš sve te fajlove tako da spajanje u jedan fajl ima smisla. Ili da potražiš neki alat koji će da prosto kopira sadržaj svakog fajla u neki drugi izlazni fajl bez razmatranja sadržaja fajla koji se čita. Sudeći po imenu, merge-cpp ipak radi neku analizu C++ koda, i na osnovu iste radi spajanje fajlova.

Ovo što tebi treba, za to možeš i da napišeš i jednu vrlo kratku C/C++/JS aplikaciju koja će da odradi sve to, ako si vičan radu sa fajlovima. Siguran sam da može i kroz jednostavnu batch skriptu da se odradi to.

Dopuna: 10 Apr 2022 4:20

Ustvari, postoji odgovarajući alat za to u samom Wimdows-u, i zove se type.

Probaj sledeću komandu (dok si u svom lab direktorijumu kao radnom direktorijumu):

type  *.cpp > output.txt

Ova komanda će samo da prođe kroz sve cpp fajlove u radnom direktorijumu i da prosto samo kopira njihov sadržaj u output.txt. Obradi pažnju na to da output više nije cpp, već txt fajl. Ovakvo spajanje koda gde ćeš da dobiješ fajl sa više main metoda više nije validan C++ kod. Drugi razlog što output mora da ima drugu ekstenziju je da bi se razlikovao od ulaznih fajlova, inače bi type komanda pokušala da prepiše i njega u njega samog.

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

hvala puno, ova komanda je riješila moj problem

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

Samo bi još bilo dobro da postoji komanda da recimo na početak (prije prve linije) svakog .cpp fajla doda njegovo ime, a da na kraj (nakon posljednje linije) doda red crtica (------) i jedan prazan red kako bi to bilo lakše za čitati Smile

Npr ova komanda će spojiti sve fajlove sa cpp ekstenzijom u jedan output.txt fajl i na svaku liniju svakog fajla će ispisati naziv tog fajla. Samo kad bi se ovo moglo nekako modifikovati ... Smile

findstr "^" *.cpp >C:\users\user\desktop\output.txt

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Eh sad. Mozda ima takav alat, a mozes i sam da ga napravis, kao sto vec rekosmo. Smile

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

Evo konačno rješenje:
Na desktopu napraviti folder merge i u njega staviti sve cpp dokumente koji se trebaju spojiti.
Otvoriti notepad i zalijepiti ovaj kod:
@echo off cd/d "C:\users\user\desktop\merge" for %%i in (*.cpp)do >>"output.txt" (      set /p "'=%%~nxi" <nul & echo;      type "%%~fi" & echo;     )
Snimiti ovaj kod na desktop pod nazivom merge.bat
File format: All files
Encoding: UTF-8

Pokrenuti program merge.bat koji se nalazi na dekstopu.
*Ovaj program će spojiti sve cpp dokumente u jedan txt fajl i pri tome će prije početka svakog cpp fajla ispisati u output fajlu naziv cpp fajla a na kraju će dodati prazan red.

Ko je trenutno na forumu
 

Ukupno su 839 korisnika na forumu :: 40 registrovanih, 8 sakrivenih i 791 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., bigfoot, Buzdovan, ccoogg123, dmdr, Excalibur13, FOX, Frunze, HrcAk47, Ivica1102, Kandrbandrdzilo, Karla, Krvava Devetka, kybonacci, Marko Marković, marsovac 2, Mcdado, mercedesamg, milenko crazy north, milutin134, Mlav, nebkv, nebojsag, nemkea71, nenad81, nuke92, Oscar2, Parker, pein, Rakenica, raptorsi, rasok, Srle993, StepskiVuk, Stoilkovic, Trpe Grozni, tubular, vathra, zlaya011, šumar bk2