Zdravim
Chcem urobit program ktory nacita textovy subor (zdrojovy kod) a vymaze z neho vsetky poznamky ktore si tam zapoznamkoval nejaky programator. Tzn. vsetko za //, medzi /* */, atd. Chcem to spravit tak ze spustim program, on si nacita ten subor ktory mu tam nachystam a z toho suboru (napr. teda zdrojoveho kodu) vymaze tieto zapoznamkovane veci.
Zatial som pokrocil tak, ze program mi nacita ten dany subor znak po znaku a vypise ho:
#include "stdafx.h"
#include "stdlib.h"
#include "errno.h"
#include "stdio.h"
#include "string.h"
int main()
{
char text[255];
FILE *subor;
if((subor=fopen("Moje.txt","r"))==NULL)
{
printf("Subor neexistuje");
}
if((subor=fopen("Moje.txt","r"))!=NULL)
{
printf("Subor existuje");
}
int i;
do
{
i=fgetc(subor);
fputc(i,stdout);
}while (i!='%');
getchar();
getchar();
return 0;
}
Obetoval som cely dnesny den vymyslanim dalsieho kodu ako by som spravil to, ze ked program narazi na tie poznamkovacie znaky (//, /* */ ...) tak aby tu poznamku od uzivatela proste vymazal z toho textaku.
Samozrejme vymyslel som vela sposobov ale bohuzial ziaden mi nefungoval, bud bol zly alebo nerobil to co mal tak preto ich sem nebudem vypisovat.
Za pripadne rady vopred Dakujem
Fórum › C / C++
Mazanie textaku
Vydal si se na nesnadnou cestu. Pokud chceš mazat jenom komentáře, tak musíš stejně rozebrat zdroják, aby si věděl, kde zrovna jsi. Jinak by se ti mohlo stát, že smažeš obsah řetězce apod.
Asi nejjednodušší řešení je přes "stavový automat", tj. vzhledem k tomu, že chceš jenom komentáře, tak stačí načítat znak po znaku (to už máš) a hledat znak /, když ho bude následovat /, tak je komentář do konce řádku. Když ho bude následovat *, tak je komentář do dvojice znaků */. Pak nesmíš zapomenou mít i stav pro znak " a případně ' (uvozovky a apostrof) z výše uvedeného důvodu.
A podle aktuálního stavu to buď budeš (nejlépe) zapisovat do jiného souboru nebo nebudeš.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Livewires - Mazanie — založil Dolby
Mazanie znaku — založil Grungy
Mazanie řádků z table — založil w3q
Zmena,mazanie,detail — založil 79kiko
Mazanie udajov v databaze — založil george
Moderátoři diskuze