.


:




:

































 

 

 

 


6.




, Borland C++ Builder Windows 98, 2000, XP NT.

6:

1. Borland C++ Builder. , File|New Application. D:/VMSS/U41(U42)/<user>, File|Project As. <user>, .

2. . 6.1. . .

 

6.1 -

3. . . OpenDialog. Filter FilterIndex . . Execute . ʻ FileName. RichEdit RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName).

4. FileName RichEdit1->Lines->Text.Length().

5. .

6. , DOS, RichEdit. OEM Ansi, API OemToChar(txt,txt). , : RichEdit txt strcpy(); API OemToChar(txt,txt); RichEdit.

7. .

8. Edit1 RichEdit. RTF-, . RTF- , RTF-. :

// RTF

#define TXTCOLOR "\\plain\\fs20\\cf1 " //

#define TXTNOCOLOR "\\plain\\fs20 " //

#define TXTSTART "{\\rtf1\\ansi\\deff0\\deftab720 {\\fonttbl {\\f0\\fmodern Courier} } \r\n {\\colortbl\\red0\\green0\\blue0;\\red255\\green0\\blue0;}\r\n" //

#define TXTEND "}\\par" //

#define TXTPAR "\\par " //

#define TXTCR "\r\n" // .

9. :

1 - RTF- ( );

2 \r\n \par;

3 TXTCOLOR TXTNOCOLOR;

4 .

10. RTF- . :

//-------------------------------------------------------

void __fastcall TForm1::RtfIns(int n, char *txtbuf, char *str)

// RTF

// n ( )

// txtbuf

// str

{

char buff[0xffff]; // c

 

memset(buff,0,strlen(txtbuf));

strcpy(buff,txtbuf); //

txtbuf[n]=0; //

strcat(txtbuf,str); // RTF

strcat(txtbuf,&buff[n]); //

}

11. RTF- n ( \r\n). :

//-------------------------------------------------------

void __fastcall TForm1::RtfDel(int n, char *txtbuf, int size)

// RTF

// n ( )

// txtbuf

// size

{

char buff[0xffff]; // c

 

strcpy(buff,txtbuf);

txtbuf[n]=0;

strcat(txtbuf,&buff[n+size-1]);

}

12. 1 . . :

strcpy(buf,RichEdit1->Lines->Text.c_str());

RTF-

RtfIns(0,buf,TXTSTART); // RTF

RtfIns(sizeof(TXTSTART)-1,buf,TXTNOCOLOR); //

strcat(buf,TXTEND); // RTF

strcat(buf,"\0\0\0"); //

char FileName[16]="123.rtf";

int handle = open(FileName, O_CREAT|O_TEXT|O_RDWR);

write(handle, buf, strlen(buf));

close(handle);

RichEdit

RichEdit1->Lines->LoadFromFile(FileName).

13. RTF-. ( RichEdit) , ( ).

14. 2 . RTF- \r\n \par.

//

ptr=strstr(buf,TXTCR);

while(ptr!= NULL)

{//

RtfDel((int)(ptr-buf),buf,sizeof(TXTCR));

RtfIns((int)(ptr-buf),buf,TXTPAR);

ptr=strstr(buf,TXTCR);

}

15. . ( RichEdit) .

16. 3 . .

strcpy(str,Edit1->Text.c_str()); //

ptr=strstr(buf,str); //

//

while(ptr!= NULL) {

RtfIns((int)(ptr-buf),,..); //

RtfIns((int)(ptr-buf)++-1,,); //

ptr=ptr+++; //

ptr=strstr(ptr,str); //

}

 

17. . ( RichEdit) .

18. 4 . .

Edit2->Text=IntToStr(count); //

19. . 6.2 .

 

6.2 -

 

:

1. ?

2. RtfIns() RtfDel() char buff[0xffff]. , ( ) .

3. RTF- RichEdit . , .

4. Ansi , .

5. ( ).

 

:

:

;

;

;

;

.

. . , , .






:


: 2016-12-06; !; : 425 |


:

:

, .
==> ...

1491 - | 1353 -


© 2015-2024 lektsii.org - -

: 0.019 .