Simple text editor project in C language in Hindi | with source code

 हेलो दोस्तों !

आज की इस पोस्ट में हम C programming language की मदद से एक simple text editor बनाना सीखेंगे। तो दोस्तों अगर आप इस project को बनाना सीखना चाहते है तो इस पोस्ट को अंत तक जरूर पढ़े। 


इस पोस्ट के मुख्य टॉपिक्स निन्म है :-

  1. Project overview. 
  2. Project की coding के steps. 
  3. project के important concept. 
  4. Project source code. 
  5. Project output video. 

1.Project overview :-

दोस्तों सबसे पहले हम text editor project का ओवरव्यू देख लेते है की यह प्रोजेक्ट क्या करेगा। इसमें क्या-क्या फीचर है। 


text editor project in c language in hindi


 तो दोस्तों यह एक सिंपल सा टेक्स्ट एडिटर प्रोजेक्ट है। इसके अंदर हमने ज्यादा फीचर्स add नहीं किये है। इस प्रोजेक्ट में आप केवल टेक्स्ट को write कर सकते है और जो आपने write किया है अगर उसे सेव करना चाहे तो सेव कर सकते है। 

इस प्रोजेक्ट की काफ़ी सारी लिमिटेशन है। जैसे अगर कोई टेक्स्ट गलत write हो गया है तो आप उसे डिलीट नहीं कर सकते है। इसमें कर्सर भी नहीं है. तथा इसमें write करने की लिमिट भी है जिससे ज्यादा characters आप write नहीं कर सकते है। 

2.Project की coding के steps :-

तो दोस्तों अब हम इस text editor project की coding करने के steps को जान लेते है। 

इस प्रोजेक्ट की कोडिंग के स्टेप्स कुछ इस प्रकार है -

1. सबसे पहले स्टेप में आपको इस टेक्स्ट एडिटर की बॉडी को ड्रा या प्रिंट कराने के लिए कोडिंग करनी है। 
2. दूसरे स्टेप में जब टेक्स्ट एडिटर की बॉडी बन जाये तो अब आपको टेक्स्ट को टेक्स्ट एडिटर के अंदर write करने से रिलेटेड कोडिंग करनी है। 
3.  तीसरे स्टेप्स में आपको टेक्स्ट एडिटर की बॉडी के अंदर लिखे टेक्स्ट को एक फाइल में सेव कराने से रिलेटेड कोडिंग करनी है। 
4. चौथे स्टेप में आपको टेक्स्ट एडिटर से बाहर आने या exit करने से रिलेटेड कोडिंग करनी है। 

ये चार स्टेप्स केवल समझाने के लिए चार स्टेप्स है लेकिन जब आप हर एक स्टेप की कोडिंग करेंगे तो आपको पता लगेगा की आपको हर स्टेप के अंदर और कितने  ज्यादा स्टेप्स की कोडिंग करनी है। 

3.project के important concept :-

दोस्तों इस प्रोजेक्ट की कोडिंग के स्टेप्स जानने के बाद अब हम इस text editor project को बनाने में यूज़ किये गए कुछ important concept को जान लेते है।

दोस्तों वैसे तो इस प्रोजेक्ट में काफ़ी सारे concepts का यूज़ किया गया है लेकिन हम केवल उन्हीं concept को  बताएँगे जो इम्पोर्टेन्ट है। क्योंकि आपको पहले से ही काफ़ी सारे concepts पता होंगे तभी तो आप प्रोजेक्ट बनाना सीख रहे है। 

तो अगर हम बात करे इम्पोर्टेन्ट कॉन्सेप्ट्स की तो हमने इस प्रोजेक्ट में फाइल हैंडलिंग ,ग्राफ़िक्स ,कंडीशनल स्टेटमेंट ,लूपिंग स्टेटमेंट ,यूजर डिफाइन फंक्शन जैसे concepts का यूज़ किया है। हमने इन concept के लिए बहुत सारे लाइब्रेरी फंक्शन्स का यूज़ किया है जो आपको इस प्रोजेक्ट के सोर्स कोड में देखने को मिल जायेंगे। 

अगर आपको इस प्रोजेक्ट में यूज़ किये गए किसी लाइब्रेरी फंक्शन के बारे में पता न हो की वह क्या करता है तो आप उसे गूगल या you tube पर सर्च करके उस फंक्शन के बारे में जान सकते है। जिससे आपको इस प्रोजेक्ट को समझने में ज्यादा आसानी होगी। 

4.Project source code :-

दोस्तों अब हम text editor project का source code देख लेते है।

तो दोस्तों ये है इस प्रोजेक्ट का सोर्स कोड जिसे हमने C प्रोग्रामिंग लैंग्वेज का यूज़ करके टर्बो पर बनाया है। हमने इस प्रोजेक्ट को टर्बो C कम्पाइलर से compile किया है। इसलिए अगर आप इस प्रोजेक्ट को किसी दूसरे कम्पाइलर से compile करेंगे तो शायद आपको कुछ एरर देखने को मिल सकती है। 

Project source code :- 


#include< stdio.h >
#include< stdlib.h >
#include< conio.h >
#include< graphics.h >
/*function declaration */
void drawBody(void);
int saveContent(int);
int input(void);

FILE *data=NULL;
char content[1024];
char str[1];
int index=0,index2=98,index3=60;
int indexing=0,checkSaved=0;
int saveContent(int check)
{
  char ch,fileName[50];
  clrscr();
  if(check==2)
  {
    settextstyle(1,0,2);
    setcolor(4);
    outtextxy(170,150,"Sorry! writing limit is over");
    settextstyle(1,0,3);
    setcolor(0);
    outtextxy(140,170,"Do you want to save content");
    outtextxy(140,200,"Press Y for yes and N for no");
    again:
    fflush(stdin);
    ch=getch();
    if(ch=='Y'||ch=='y')
    {

      data=fopen("testfile.txt","w");
      if(data==NULL)
      {
	outtextxy(210,200,"System error");
      }
      fputs(content,data);
      fclose(data);
      clrscr();
      settextstyle(1,0,3);
      setcolor(1);
      outtextxy(140,200,"Content is successfully saved");
    }else if(ch=='N'||ch=='n')
    {
      exit(0);
    }else
    {
      clrscr();
      setcolor(4);
      outtextxy(190,200,"Invalid Key Try again");
      goto again;
    }
    return 5;
  }else if(check==1)
  {
    settextstyle(1,0,3);
    setcolor(0);
    outtextxy(140,170,"Do you want to save content");
    outtextxy(140,200,"Press Y for yes and N for no");
    again1:
    fflush(stdin);
    ch=getch();
    if(ch=='Y'||ch=='y')
    {
      data=fopen("testfile.txt","w");
      if(data==NULL)
      {
	outtextxy(210,200,"System error");
      }
      fputs(content,data);
      fclose(data);
      clrscr();
      settextstyle(1,0,3);
      setcolor(1);
      outtextxy(140,200,"Content is successfully saved");
    }else if(ch=='N'||ch=='n')
    {
      exit(0);
    }else
    {
      clrscr();
      setcolor(4);
      outtextxy(190,200,"Invalid Key Try again");
      goto again1;
    }
  }
  return 5;
}
int input()
{
  char ch,ch2;
  if(kbhit())
  {
    ch=getch();
    if(ch==27)
    {
      data=fopen("testfile.txt","r");
      if(data==NULL)
      {
	outtextxy(210,200,"System error");
      }
      while(!feof(data))
      {
	getc(data);
	checkSaved++;
      }
      fclose(data);
      return 1;
    }else if(ch==13)
    {
      content[indexing]='\n';
      indexing++;
      index2=98;
      index3+=15;
      if(index3>=380&&index3<=395)
      {
	return 2;
      }
    }else if(ch==8)
    {
      if(index3>=60&&index3<=65)
      {}else
      {
	indexing--;
	index2-=8;
	if(index2>=92&&index2<=98)
	{
	  index2=540;
	  index3-=15;
	}
      }
    }else if(ch==9)
    {
      data=fopen("testfile.txt","w");
      if(data==NULL)
      {
	outtextxy(210,200,"System error");
      }
      fputs(content,data);
      fclose(data);
    }else
    {
      setcolor(10);
      settextstyle(0,0,0);
      str[0]=ch;
      if(ch>=32&&ch<=126)
      {
	content[indexing]=ch;
	outtextxy(index2,index3,str);
	index2+=8;
	indexing++;
	if(index2>=540&&index2<=548)
	{
	  index2=98;
	  index3+=15;
	  if(index3>=380&&index3<=390)
	  {
	    return 2;
	  }
	}
      }
    }
  }
  return 0;
}
void drawBody()
{
  setcolor(5);
  settextstyle(3,0,3);
  outtextxy(200,20,"SIMPLE TEXT EDITOR");
  setcolor(5);
  settextstyle(3,0,1);
  outtextxy(5,170,"Press Esc");
  outtextxy(10,200,"To Exit");
  outtextxy(555,170,"Press Tab");
  outtextxy(560,200,"To save");
  outtextxy(580,230,"File");
  setcolor(1);
  setlinestyle(0,1,3);
  rectangle(90,50,550,400);
}
void main()
{
  int gd=0,gm,end=0;
  clrscr();
  initgraph(&gd,&gm,"");
  while(end!=5)
  {
    drawBody();
    end=input();
    if(end==2)
    {
      if((checkSaved>=indexing)||(checkSaved==0&&indexing==0))
      {
	exit(0);
      }else
      {
	end=saveContent(end);
      }
    }else if(end==1)
    {
      if((checkSaved>=indexing)||(checkSaved==0&&indexing==0))
      {
	exit(0);
      }else
      {
	end=saveContent(end);
      }
    }
  }
  getch();
  closegraph();
}

5.Project output video :-

दोस्तों अगर आप इस text editor project का आउटपुट देखना चाहते है की यह कैसे वर्क कर रहा है इसमें क्या-क्या फीचर है। तो आप हमारी यह वीडियो देख सकते है हमने इस वीडियो में इस प्रोजेक्ट को रन करके दिखाया है और साथ में इस प्रोजेक्ट में यूज़ किये गए C language के कुछ important concept को भी समझाया है तो अगर आप इस वीडियो को you tube पर देखना चाहते है तो नीचे दिए लिंक पर क्लिक करके वीडियो देख सकते है। 


basic text editor graphics project in c language video hindi



इन पोस्ट को भी पढ़े :-


Author :- तो दोस्तों अब हमारी यह पोस्ट ख़त्म होती है हम आशा करते है की आपको हमारी यह पोस्ट जरूर पसंद आई होगी और आप text editor का project C programing language की मदद से बनाना सीख गए होंगे। तो दोस्तों आज के लिए बस इतना ही फिर मिलेंगे ऐसी ही किसी और मजेदार पोस्ट में तब तक के लिए अलविदा !

Post a Comment

0 Comments