Programa Metin Belgesi Gömmek - C++
-
Konsol ekranında çalışan bir program yapmak istiyorum diyelim 1 test.txt dediğimde, o programla aynı dizinde bulunan test.txt yi ekleyecek, 2 text.txt dediğimde metin belgesini çıkaracak, böyle bir şeyi nasıl hallederim. (win api lere girişmeden olursa daha iyi olur)
-
test.txtyi nereye ekleyecek?Ekrana bastırmasını mı istiyorsun dosyayı okuyup?
-
exe nin içine gömücek sadece gömme işlemi, okuma yok, herhangi bir dosyada olabilir farketmez
DeadSoul tarafından 05/Kas/13 22:27 tarihinde düzenlenmiştir -
void displayfile(string s) { ifstream inputfile; inputfile.open(s.c_str()); if(!inputfile) { cerr<<"Error: The input file could not be opened!\n"; exit(-1); } string line; while(getline(inputfile,line)) { cout<<line<<endl; } inputfile.close(); // close the file }
-
HolyOne bunu yazdı
void displayfile(string s) { ifstream inputfile; inputfile.open(s.c_str()); if(!inputfile) { cerr<<"Error: The input file could not be opened!\n"; exit(-1); } string line; while(getline(inputfile,line)) { cout<<line<<endl; } inputfile.close(); // close the file }
yanlış anlaşılma varsa kusura bakmayın istediğim bu değil .exe olan dosyanın içine gömücek böyle bir olay yok mu yoksa ?
-
Olmaz mı? Neden olmasın?
#include <cstdlib> #include <iostream> #include <fstream> using std::string; using std::cout; using std::cin; string GetirGomuluMetin1(); string GetirGomuluMetin2(); int main(int argc, char *argv[]) { std::ofstream dosya; dosya.open("deneme.txt"); dosya << GetirGomuluMetin1(); dosya.close(); dosya.open("deneme2.txt"); dosya << GetirGomuluMetin2(); dosya.close(); cout << "Press the enter key to continue ..."; cin.get(); return EXIT_SUCCESS; } string GetirGomuluMetin1() { return string("Bu up uzun bir metin olabilir de olmayabilir de"); } string GetirGomuluMetin2() { char metin_parca1[] = "birinci bolum\n"; char metin_parca2[] = "ikinci bolum\n"; char metin_parca3[] = "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321" "1234567890098765432112345678900987654321"; return string(metin_parca1) + string(metin_parca2) + string(metin_parca3); }
-
anlatamadım :D istediğim dosyanın kendisini gömmek, mesela test.exe nin içine test.rar ı gömücem test.exe yine aynı kalacak ama test.rar saklanmış olacak içine
-
virüsmü yapıcan kardeş :D
-
Winapi'ye bulaşmak istemiyorsanız yine aynı şekilde yapacaksınız. Gömülecek dosyayı on altılık düzenleyici ile açıp, koda yapıştırmanız gerekmekte.
-
YeniHarman bunu yazdı
Winapi'ye bulaşmak istemiyorsanız yine aynı şekilde yapacaksınız. Gömülecek dosyayı on altılık düzenleyici ile açıp, koda yapıştırmanız gerekmekte.
vaktini almayacaksa bir örnekle anlatabilir misin?
-
buyur hacı fazla kontrol edemedim kendine göre düzenlersin
#include <windows.h>
#include <stdio.h>
char *gveri;
int gboyut;
int dosyaverisi(char *yol)
{
FILE *dosya;
if((dosya=fopen(yol,"rb")))
{
fseek(dosya,0,SEEK_END);
gboyut=ftell(dosya);
rewind(dosya);
gveri=(char*)malloc(gboyut);
fread(gveri,1,gboyut,dosya);
fclose(dosya);
return 1;
}
printf("\nDosya acilmadi %s\n",yol);
return 0;
}
void gomcur(char *buna, void *bunu, int boyut)
{
FILE *dosya;
if((dosya=fopen(buna,"ab")))
{
fwrite((char*)bunu,1,boyut,dosya);
fclose(dosya);
}
else
printf("\nDosya acilmadi %s\n",buna);
}
int main(int argc, char *argv[])
{
Sleep(100);
char txt[1024],temp[1024];
const char *iz="gomuldu";
FILE *dosya;
if(strncmp(argv[0]+(strlen(argv[0])-9),"__tmp.exe",9)==0)
{
if((dosya=fopen(argv[0],"rb")))
{
fseek(dosya,-(sizeof(txt)+sizeof(temp)),SEEK_END);
fread(txt,1,sizeof(txt),dosya);
fread(temp,1,sizeof(temp),dosya);
fclose(dosya);
int i;
for(i=strlen(temp);temp[i-1]!='\\';--i)
;;
strcpy(txt+i,txt);
strncpy(txt,temp,i);
if(dosyaverisi(txt))
{
strcpy(txt,txt+i);
gomcur(temp,txt,sizeof(txt)); //dosya ismi
gomcur(temp,gveri,gboyut); //dosya verisi
free(gveri);
gomcur(temp,&gboyut,sizeof(int)); //dosya boyutu
gomcur(temp,(char*)iz,strlen(iz)); //gomuldu ibaresi
printf("gomdum : %s\n",txt);
getchar();
}
}
}
else
{
if(dosyaverisi(argv[0]))
{
char *tc = gveri+(gboyut-strlen(iz));
if(strcmp(tc,iz)==0)
{
int tlen;
tc-=4;
memcpy(&tlen,tc,4);
tc-=tlen;
strcpy(txt,tc-sizeof(txt));
gomcur(txt, tc, tlen);
free(gveri);
printf("cikarildi : %s\n",txt);
getchar();
return 0;
}
}
printf("dosya ismi gir\n");
gets(txt);
GetEnvironmentVariable("TEMP",temp,sizeof(temp));
strcat(temp,"\\__tmp.exe");
if(dosyaverisi(argv[0]))
{
if((dosya=fopen(temp,"wb")))
{
fwrite(gveri,1,gboyut,dosya);
fclose(dosya);
}
free(gveri);
}
gomcur(temp, txt, sizeof(txt));
strcpy(txt,argv[0]);
gomcur(temp, txt, sizeof(txt));
ShellExecute(NULL, "open", temp, NULL, NULL, SW_SHOW);
}
return 0;
}