Poslao: 09 Apr 2022 21:39
|
offline
- Pridružio: 11 Okt 2014
- Poruke: 362
|
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.
|
|
Poslao: 09 Apr 2022 22:54
|
offline
- vasa.93
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- 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?
|
|
|
|
Poslao: 09 Apr 2022 23:34
|
offline
- Pridružio: 11 Okt 2014
- Poruke: 362
|
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?
|
|
|
|
Poslao: 09 Apr 2022 23:48
|
offline
- vasa.93
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- 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š?
|
|
|
|
Poslao: 10 Apr 2022 04:06
|
offline
- Pridružio: 11 Okt 2014
- Poruke: 362
|
vasa.93 ::Ajmo jedno logičko pitanje: Kada spojiš prazan fajl ni sa čim, šta dobiješ?
stvarno ima logike
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?
|
|
|
|
Poslao: 10 Apr 2022 04:20
|
offline
- vasa.93
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- 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.
|
|
|
|
|
Poslao: 10 Apr 2022 13:29
|
offline
- Pridružio: 11 Okt 2014
- Poruke: 362
|
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
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 ...
findstr "^" *.cpp >C:\users\user\desktop\output.txt
|
|
|
|
Poslao: 10 Apr 2022 13:43
|
offline
- vasa.93
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Eh sad. Mozda ima takav alat, a mozes i sam da ga napravis, kao sto vec rekosmo.
|
|
|
|
Poslao: 10 Apr 2022 16:13
|
offline
- Pridružio: 11 Okt 2014
- Poruke: 362
|
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.
|
|
|
|