C 代码打开记事本自动录入文本
C_实验-记事本(带源码)
记事本实验报告一、实验目的创建一个Windows窗体应用程序,实现记事本的基本功能,具体包括新建文件、打开文件、保存文件、查找等功能。
该实验的目的是掌握:(一)窗体程序的开发(二)常用控件的使用(三)常用事件的处理(四)对话框的设计和使用(五)文件访问的基本方法二、实验内容(一)主窗口Form1图1 主窗口主窗口界面如图1所示,功能包括基本编辑操作、主菜单和其它快捷键功能。
1、编辑功能用文本框实现。
2、窗口标题与文件名相一致。
未打开文件时为“无标题”,打开文件(另存为)后为文件名。
3、支持菜单的热键和快捷键。
二者的区别是前者是激活菜单且显示出该菜单项时有效,后者在任何时候有效。
4、实现新建、打开、保存和查找功能。
5、支持F3(查找下一个)。
表1 Form1控件列表using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;namespace WindowsFormsApplication1{public partial class Form1 : Form{public Form2 fm2 = null;public string searchText = "";public Form1(){InitializeComponent();}private void saveFile(){if (textBox1.Text.Length > 0 && textBox1.Modified) {if (MessageBox.Show("想保存文件吗?", "记事本",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning) == DialogResult.Yes){SaveFileDialog d = new SaveFileDialog();d.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (d.ShowDialog() == DialogResult.OK){FileStream fs = File.OpenWrite(d.FileName);StreamWriter sr = new StreamWriter(fs);sr.Write(textBox1.Text);sr.Flush();fs.Close();}}}}private void文件NToolStripMenuItem_Click(object sender, EventArgs e) {saveFile();textBox1.Text = "";Text = "无标题 - 记事本";}private void OpenFile(){OpenFileDialog d = new OpenFileDialog();d.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (d.ShowDialog() == DialogResult.OK){FileStream fs = File.OpenRead(d.FileName);StreamReader sr = new StreamReader(fs);string s;string s1 = "";while ((s = sr.ReadLine()) != null){s1 += s;}textBox1.Text = s1;string fname = d.FileName.Substring(stIndexOf("\\") + 1);Text = fname + " - 记事本";}}private void打开OToolStripMenuItem_Click(object sender, EventArgs e) {saveFile();OpenFile();}private void保存SToolStripMenuItem_Click(object sender, EventArgs e) {saveFile();}private void查找FToolStripMenuItem_Click(object sender, EventArgs e) {if (fm2 == null){fm2 = new Form2();fm2.fm1 = this;Form2.textBox2 = textBox1;fm2.Show();}elsefm2.Activate();}private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.A && e.Control && !e.Shift && !e.Alt){textBox1.SelectAll();e.Handled = true;}else if (e.KeyCode == Keys.F3 && !e.Control && !e.Shift && !e.Alt) {Form2.findNext();}}}}(二)查找对话框图2 查找对话框查找对话框的界面(图2)与记事本的相同。
c语言的记事本源代码
if((fp=fopen("tongxunlu.txt","a+"))==NULL)
{ printf(" 无法打开文件~~~\n");
}
while(!feof(fp))
{ i++;
p2=p1;
p1=(link *)malloc(LEN);
printf("Thank your use\n");
else
if(identify=='n'||identify=='N')
exit(0);
else
printf(" 请输入(Y/N):");
{ printf(" 无法打开文件~~~\n");
exit(0);
} //打开文件,并将文件中内容复制到链表中,若文件中无记录,则链表头指针为空
char identify;
// char fullname[10];
link *head,*p,*p1,*p2,*p3;
int choose;
char absorb;
int i;
head=NULL;
welcome();
head=NULL;
p2->next=NULL;
fclose(fp);
if(head==NULL)
p1=p2=(link *)malloc(LEN);
fread(p1,LEN,1,fp);
head=p1;
#include<stdio.h>
#include<stdlib.h>
c语言课设实验报告-记事本程序(含源码)
C语言课设实验报告[记事本程序]班级:学号:姓名:指导老师:C语言课设实验报告#define key_down 80#define key_up 72#define key_esc 1#define key_alt_f 33#define key_alt_x 45#define key_enter 28#define key_alt_e 18int get_key();void box(int startx,int stary,int high,int width);{int i,key,x,y,l;char *w=NULL,*d=NULL,*s=NULL;FILE *fp;char *menu[]={ "File ", "Edit ","Format","View","Help"};char *red[]={ "F", "E","F","V","H"};char *f[]={ "New ", "Open" , "Save", "Another","Quit alt_x"};char *e[]={"Search","Search next","Replace","Date"};char buf[16*10*2],buf1[16*2];textbackground(3);clrscr();window(1,1,80,1);textbackground(WHITE);textcolor(BLUE);clrscr();window(1,1,80,2);for(i=0, l=0; i <5;i++){x=wherex();y=wherey();textcolor(BLACK);cprintf( " %s ",menu[i]);l=strlen(menu[i]);gotoxy(x,y); x.y等的头文件*//*功能键的扫描码的定义*//* i为循环次数的序数,key为从键盘输入的功能键,x,y 为光标的坐标,l为菜单栏中菜单的字符长度*//*w是存放输入的内容(记录的事情)的指针,*s是存放输入的文件名的指针,*d是存放输入要定时的文件的文件名的指针*/ /*菜单栏中各个菜单的定义*//*菜单栏中菜单开头要标颜色的字母的定义*//* file 子菜单中项目的定义*//*edit子菜单的定义*/ /*缓冲区的定义*//*整个大窗口的背景颜色设置*//*创建菜单栏窗口*/ /*设置菜单栏窗口背景颜色为白色,字体颜色为蓝色*//*利用循环输出menu菜单栏,有多少个菜单循环多少次。
C语言记事本代码
C语言记事本代码#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#include<ctype.h>#define NULL 0#define MAX 100typedef struct lnode{char date[MAX]; //存放数据struct lnode * prior ; //前驱struct lnode * next ; //后继int number ; //记录一个节点的字符数~如果是头节点就记录他的节点个数int quese ; //记录节点在链表中的位置}lnodetype;lnodetype * l ; //设置两个全局变量,分别是头节点指针和尾节点指针lnodetype * end ;//**********这个函数是用来初始化的**********//int iniatelist (lnodetype ** l , lnodetype ** end){(*l) = (lnodetype *)malloc (sizeof (lnodetype) ) ;if ( (*l) == NULL ){printf ("没有只够的内存空间~程序即将退出~");return 0 ;}(*l)->prior =(*l)->next = NULL ; //这是双链表(*l)->number = (*l)->quese = 0;(*end) = (*l) ;printf ("程序初始化完毕~");return 0;}//**********这个函数是用来建立节点,并且插入元素的**********// int link(lnodetype ** l, lnodetype ** end){lnodetype *s ;s = (lnodetype *)malloc ( sizeof (lnodetype) ) ;if ( s == NULL ){printf ("内存空间不够,程序即将退出~") ;return 0 ;}(*end)->next = s ;s->prior = (*end) ;(*end) = (*end)->next ;(*l)->number++ ; //增加一个节点,头节点的number就加1s->quese = (*l)->number ; //这个是记录节点在链表中的位置printf ("%d行", s->quese ) ; //这个是节点在整个链表中的位置gets(s->date) ;s -> number = strlen(s->date) ;return 0 ;}//**********这个是打印链表的函数**********//int prin (lnodetype ** l, lnodetype ** end){lnodetype * p ;int i ;int j = 0;int couter = (*l)->number ;p = (*l)->next ;for (i=0; i < couter; i++){printf ( "%d行" , i+1 ) ;j = 0;while ( ( p->date[j]>='a' && p->date[j]<='z') || (p->date[j]>='A' && p->date[j]<='z') ||p->date[j]>='0' && p->date[j]<='9'){printf ( "%c" , p->date[j] ) ;j++ ;}printf ("n") ;p = p->next ;}return 0 ;}//*********这个查找和编辑相应行的函数**********//int search (lnodetype ** l, lnodetype ** end ){int number ;scanf ("%d" , &number) ;int i ;lnodetype * p ;p = (*l)->next ;for ( i=0; i<number-1; i++ )p = p->next ;printf ("%d行" , number ) ;gets (p->date) ;return 0 ;}//**********这个是在文本文件里搜索字符串的函数**********// int searchstr(lnodetype ** l , lnodetype ** end){char ptr[100] ;int arrycouter ;int mystrcmp( char *, char * , int ) ;printf ( "ok!现在输入你查找的字符串~" ) ;scanf ( "%s" , ptr ) ;arrycouter = strlen (ptr) ;lnodetype * s ;s = (*l)->next ;char * p ;int i = 1 ;int couter = 0 ;int number = (*l)->number ;p = (char *)s->date ;while ( i && number ){// i=1是,证明没有找到,向第二个节点继续寻找while ( i && ( ( (*p >= 'a') && (*p <= 'z') ) ||( (*p >= 'A') && (*p <= 'Z') ) ) ){i = mystrcmp ( p , ptr , arrycouter );if ( i == 1 ){printf ("字符串已经在第%d行,第%d个字符开始,",s->quese, couter+1 );i = 0 ;}else{p++ ;couter++;i = 1 ;}}s = s->next ;p = (char *)s->date ;number -- ;}if ( i == 1 )printf ("字符串在本文档中不存在~");return 0 ;}//**********(1)这个函数是用来实现退出不保存功能的**********// int exitunsave(lnodetype ** l, lnodetype ** end){lnodetype * s ;while( (*l) != (*end) ){ //如果不保存的话,最好是把节点的空间都释放,节省空间s = (*end) ;(*end) = (*end)->prior ;free( s ) ;}return 0 ;}//**********(2)这个函数是用来实现退出但保存功能的**********// int quitandsave( lnodetype ** l , lnodetype ** end ){FILE * fp ;char ch ;char filename[20] ;lnodetype * p;int i ;int j ;int couter = (*l)->number ;p = (*l)->next ;printf ("请输入文件名:") ;scanf ("%s" , filename ) ;if ( (fp = fopen( filename , "w" )) == NULL ){printf ("文件不能打开~n");return 0 ;}for ( i=0; i<couter; i++ ){ //有几个节点就进行多少次的存贮ch = p->date[0] ;j = 1 ;while (ch != '\0'){fputc (ch , fp) ;ch = p->date[j] ;j++ ;}p = p->next ;fputc ( '#' , fp ) ; //注意在每个节点的后面加上结束的符号}fputc ( '@' , fp ) ; //整个文件关闭的标志fclose ( fp ) ; //注意关闭文件,return 0 ;}//**********由于库函数比较字符串提供的功能不满足要求,故自己写了一个**********/int mystrcmp( char * p ,char * sour ,int number ){while ( number && (*p) == (*sour) &&( ( (*p >= 'a') && (*p <= 'z') ) || ( (*p >= 'A')&& (*p <= 'Z') ) )){p++ ;sour++ ;number-- ;}if ( number == 0 )return 1 ;elsereturn 0 ;}//**********这个函数是用来实现统计字符串功能的**********//int coutword(lnodetype ** l , lnodetype ** end){ //考虑到只统计一行的单词没有意义,故统计整个文本int yes = 1 ; //这个是进入单词的标志int no = 0 ; //在单词外面的时候的标志int i , j ,inaword ,count = 0 ;inaword = no ;lnodetype * s = (*l)->next ;for (j=0; j<(*l)->number; j++){for ( i=0; (s->date[i]>='a' && s->date[i]<='z') || (s->date[i]>='A' && s->date[i]<='z') ||(s->date[i]>='0' && s->date[i]<='9' ) ||(s->date[i]==' '); i++ ){if ( s->date[i] == ' ' )inaword = no ;elseif ( inaword == no ){inaword = yes ;count++ ; //计算单词}}s = s->next ;inaword = 0 ; //注意这里,把标志置为0了~}printf ( "n文本一共有 %d 行" , (*l)->number ) ;printf ("n此文本一共有 %d 个单词!" , count ) ;return count ;}//**********这个函数是用来实现计算文本行数功能的**********// int linecouter(lnodetype ** l , lnodetype ** end ){int couter ;couter = (*l)->number ;return couter ;}//**********这个函数是整和一上所有功能的菜单函数**********// int editmenu(lnodetype ** l , lnodetype ** end ){char choice ;char * p = "cls" ;int i = 1 ; //这两个变量是用来控制循环的int j= 1 ;system (p) ;prin (&(*l) , &(*end)) ;while (j){printf ("*********************************** e: 编辑相应行*************************************n") ;printf ("*********************************** s: 搜索字符串*************************************n") ;printf ("*********************************** t: 统计单词个数***********************************n") ;printf ("*********************************** q: 退出编辑***************************************n") ;scanf("%c",&choice);scanf("%c" , &choice) ; //,,,,莫名其妙的问题,非要两个请求输入语句才肯停下来~switch (choice){case 'e' : {i = 1 ;while (i){search( &(*l) , &(*end) );system (p) ;prin( &(*l) , &(*end) ) ;printf ("n1 继续编辑 0 结束编辑n") ;scanf ("%d" , &i) ;}}break;case 's' : {i = 1 ;while (i){searchstr( &(*l) , &(*end) );getchar();getchar();system (p) ;prin( &(*l) , &(*end) ) ;printf ("n1 继续搜索 0 结束搜索n") ; scanf ("%d" , &i) ;}}break;case 't' : {coutword ( &(*l) , &(*end) ) ;getchar() ;}break;default : return 0 ;}system (p) ;prin( &(*l) , &(*end) ) ;printf ("n1 回到编辑菜单 0 结束编辑n") ; scanf ("%d" , &j) ;if (j == 1)system (p) ;elsereturn 0 ;}return 0 ;}//**********实现第一个模块:新建空白文档**********// int newtext( lnodetype ** l ,lnodetype ** end ) {printf ( "新文本文件:n" ) ;int i = 1 ;char judstr[MAX] ;lnodetype * temp ;char jud ;char * p = "cls" ;while ( 1 ){link( &(*l) , &(*end) ) ;jud = (*end)->date[0] ;if ( jud == '5' ){ //输入‘5’结束一切temp = (*end) ;(*end) = (*end)->prior ;free (temp) ;while (1){printf ( "******************************* out :退出不保存****************************n") ;printf ( "******************************* edit :编辑信息*****************************n") ;printf ( "******************************* quit :退出而不存盘**************************n") ;printf ( "******************************* qas :退出且存盘****************************n") ;printf ( "******************************* con :继续输入~*****************************n") ;gets(judstr) ;if ( !strcmp(judstr , "out") ){exitunsave( &(*l) , &(*end) ) ;return 0 ;}elseif ( !strcmp(judstr , "qas") ){quitandsave( &(*l) , &(*end) ) ;return 0 ;}elseif ( !strcmp(judstr , "edit") ){editmenu (l , end) ;return 0;}system (p) ;}return 0 ;}}return 0 ;}//**********这个是装入文件的函数**********// int loadtaxt( char * filename ){FILE * fp ;lnodetype * l ;char ch ;int i = 0 ;char * p = "cls" ;char judstr[MAX] ;lnodetype * head ;lnodetype * end ;iniatelist ( &head , &end) ;l = end = head ;if ( (fp = fopen( filename, "r+")) == NULL ){ printf ("文件不能打开~n") ;return 0 ;}ch = fgetc ( fp ) ;while ( ch != '@' ){lnodetype *s ;s = (lnodetype *)malloc ( sizeof (lnodetype) ) ; if ( s == NULL ){printf ("内存空间不够,程序即将退出~") ;return 0 ;}end->next = s ;s->prior = end ;end = end->next ;l->number++ ;s->quese = l->number ;printf ("%d行", s->quese ) ;while ( ch != '#'){s->date[i] = ch ;ch = fgetc (fp) ;i++ ;}i = 0;while ( (end->date[i]>='a' && end->date[i]<='z') ||(end->date[i]>='A' && end->date[i]<='z') ||(end->date[i]>='0' && end->date[i]<='9' ) ||(end->date[i]==' ') ){printf ( "%c" , end->date[i] ) ;i++ ;}end->date[i] = '\0' ; //注意在节点的最好加上这个,以让退出保存功能函数知道此节点已结束printf ( "n" ) ;i = 0;ch = fgetc ( fp ) ;}fclose (fp) ;printf ("n文件成功装入~n") ;while (1){printf ( "******************************* out :退出不保存****************************n") ;printf ( "******************************* edit :编辑信息*****************************n") ;printf ( "******************************* qas :退出且存盘****************************n") ;printf ( "******************************* con :继续输入~*****************************n") ;scanf("%s",judstr);if ( !strcmp(judstr , "out") ){exitunsave( &l , &end ) ;return 0 ;}elseif ( !strcmp(judstr , "qas") ){quitandsave( &l , &end ) ;return 0 ;}elseif ( !strcmp(judstr , "edit") ){editmenu (&l , &end) ;return 0 ;}system (p) ;}return 0 ;}//**********主函数**********// void main ( void ){//iniatelist (&l , &end) ;//newtext(&l , &end) ;char filename[MAX] ;scanf ( "%s" , filename ) ; loadtaxt( filename ) ;}很不容易做的程序~~~通过编译。
C语言实现文本编辑器
C语言实现文本编辑器本文将介绍使用C语言实现一个简单的文本编辑器的基本原理和实现步骤。
通过此编辑器,用户可以打开、编辑、保存和关闭文本文件,并且具备基本的文本编辑功能,如插入、删除、查找和替换文本等。
一、编辑器界面设计为了实现一个简单易用的文本编辑器,我们可以设计一个基于命令行界面的编辑器。
用户可以通过文本命令来操作编辑器,从而实现基本的编辑功能。
二、文件的打开和保存在C语言中,我们可以使用标准文件操作函数来实现文件的打开和保存。
用户可以通过指定文件路径来打开或保存文件。
打开文件时,程序会读取文件内容,并将其显示在编辑器界面中;保存文件时,程序会将编辑器内的文本内容写入目标文件中。
三、基本文本编辑功能1. 插入文本用户可以使用插入命令将文本内容插入到当前光标位置之前或之后。
程序会根据插入位置的不同,调整光标的位置,并显示插入后的文本内容。
2. 删除文本用户可以使用删除命令删除当前光标位置处的文本内容。
程序会删除光标所在位置的字符,并相应地调整文本的显示和光标的位置。
3. 搜索文本用户可以使用搜索命令来查找特定的文本内容。
程序会从当前光标位置开始搜索,并根据搜索结果将光标移动到匹配文本的位置。
4. 替换文本用户可以使用替换命令将指定的文本内容替换为新的内容。
程序会搜索文本中的所有匹配项,并将其替换为新的内容。
四、其他功能扩展除了基本的文本编辑功能外,我们还可以对编辑器进行功能扩展,以提升用户体验和编辑效率。
一些可能的扩展功能包括:1. 撤销和重做功能:允许用户撤销和重做操作,以便回退或恢复文本编辑的历史记录。
2. 多窗口编辑:支持同时打开和编辑多个文本文件的功能,提供多窗口切换和管理。
3. 自动保存与恢复:定时自动保存编辑的文本内容,并在下次启动时自动恢复上次编辑的状态。
4. 语法高亮:根据文本类型,对关键字、注释、字符串等进行特殊标记显示,提升代码可读性。
五、总结通过使用C语言,我们可以实现一个简单但功能完善的文本编辑器。
vc实现记事本文本
2010~2011学年度第一学期期末考试 2009 级 软件技术 专业《Visual C++程序设计》科试题(A )(命题教师: 王成 考试方式:机考(作品)考试时间:第18~第19周) 系部 班别 姓名 学号一、实现一个简单文本编辑器 编辑器的基本功能包括文件操作/文件编辑/插入功能/格式设置等等。
具体要求如下: 1.文档操作:主要是在txt 文档中输入文字信息。
2.文件操作:包括文件的新建、打开、关闭、保存、另存为及退出程序等功能。
3.文件编辑:包括撤销上一步操作、剪切、复制、粘贴、删除、全选、查找、查找下一个、替换等功能。
4.插入功能:主要是为了方便使用者插入日期、时间等信息。
5.字体设置:可以通过[字体]菜单对编辑器的显示字体进行设定,字体设定应能设置字体的颜色。
字体的不需要保存到文件,即字体设置只在当前编辑时有效,退出程序并再次运行时不需要与上次的字体相同。
6.对于以CEditView 类实现的方式,文件编辑功能的相应菜单项不得使用以下ID 值: ID_EDIT_UNDO ID_EDIT_CUT ID_EDIT_COPY ID_EDIT_PASTE ID_EDIT_FIND ID_EDIT_REPEAT ID_EDIT_REPLACE ID_EDIT_CLEARID_EDIT_CLEAR_ALL二、成绩评定方式(满分100分)根据任务完成情况评定。
由教师根据软件作品的完成情况给予评分,并进行随机提问,最终每人提交软件作品一份。
1.文件操作:文件的新建、打开、关闭、保存、另存为----------20分;2.文件编辑:撤销、剪切、复制、粘贴、删除、全选-------------20分;3.文件编辑:查找、查找下一个、替换-------------------------------30分;4.字体设置:字体设定--------------------------------------------------- 10分5.字体设置:字体颜色设置----------------------------------------------10分6.插入功能:插入日期、时间等信息----------------------------------10分。
c++代码打开记事本自动录入文本
相信你和我一样也喜欢随时鼓捣些有趣的代码,不然你也不会找到这个文档,这些代码经过编译连接之后会形成一个可以自动打开记事本并向记事本中录入相关文字,在这中间嵌入的是VBS代码,我个人对BVS代码是有某种特殊感情的,特别喜欢这个代码。
不多说,先看代码://outfile.cpp -- writing to a file#include <iostream>#include <fstream>int main() {using namespace std;char automobile[]={"on error resume next\nset WshShell = WScript.CreateObject(\"WScript.Shell\")\nWshShell.Run \"notepad.exe\"\nWScript.Sleep 2000\nWshShell.SendKeys \"hello world!\"\n"};ofstream outFile; //create object for outputoutFile.open("carinfo.vbs"); //associate with a filecout.precision(2);cout.setf(ios_base::showpoint);outFile << fixed;outFile.precision(2);outFile.setf(ios_base::showpoint);outFile<< automobile << endl;outFile.close(); //done with filesystem("carinfo.vbs");return 0;}。
用C#语言实现记事本(代码)
一记事本本章介绍如何使用Visual C# 2013设计一个Windows应用程序——记事本,通过本章的学习,可以进一步掌握MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何使用CommonDialog(公共对话框)实现对文本的存取、格式设置等操作。
(说明:所有代码必须在英文状态下使用!)1.1 记事本简介记事本是一种常用的软件,在微软的Windows中,自带了一个记事本软件,Windows 7下的记事本软件如图1所示。
图1 Windows自带的记事本本章介绍的记事本,实现了Windows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、大小和颜色,并在状态栏中显示时间。
为了方便用户的操作,还在程序的窗体上放置了一个工具栏。
本章介绍的记事本程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能,并且用户可以根据需要显示或者隐藏工具栏和状态栏。
接下来将详细的介绍记事本程序的设计与实现的步骤和方法。
1.2 记事本界面设计新建一个Windows窗体应用程序,并命名为“Notepad”。
本节介绍记事本程序的界面设计以及界面上各控件的属性设置。
1.打开VS2013 单击文件→新建→项目2.选择模版→Visual C# →windows→windows窗体应用程序在下面的名称写Notepad出现界面如图所示3 更改窗体名称单击窗体,→右下角属性→text 修改为“记事本”如图所示控件类型控件名称属性设置结果Form Form1 Name frmNotepadText 记事本StartPosition(起始位置)CenterScreen(中央屏幕)Size 600, 450 Anchor (抛锚,使固定)(1)界面设计新建好“Notepad”项目后,定位到记事本程序的窗体设计器窗口,然后依次在窗体上放置以下控件(各1个):(1)M enuStrip(菜单控件)。
计算机二级c语言用记事本 -回复
计算机二级c语言用记事本-回复
可以使用记事本编写C语言程序。
例如,可以按照以下步骤进行操作:
1. 打开记事本,在空白的文档中编写C语言程序代码。
2. 保存文件时,将文件命名为“xxx.c”(xxx可为任何名称),并将“保存类型”选为“所有文件”。
3. 使用cmd命令行工具(类似于终端),进入保存C语言程序的文件夹,并输入以下命令进行编译:
gcc xxx.c -o xxx.exe
其中“xxx.c”为文件名,“xxx.exe”为编译后生成的可执行文件名。
4. 编译成功后,输入以下命令运行程序:
xxx.exe
其中“xxx.exe”为编译后生成的可执行文件名。
用C编写的记事本程序
最近想好好研究C,于是便拿记事本这个小程序练练手。
自己从网上找了一个挺不错的,就从这个开始学习吧。
一:代码先建立一文件夹->方便管理与查看拿我来说,在d盘根目录下新建note文件夹1.新建一note.rc资源文件,代码如下。
#include "sample.h"A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "sample.ico" //LOADONCALL 调入装入MAINMENU MENU{POPUP "文件(&F)"{MENUITEM "打开(&O)...", CM_FILE_OPENMENUITEM "另存为(&S)...", CM_FILE_SAVEASMENUITEM SEPARATORMENUITEM "关闭", CM_FILE_EXIT}POPUP "帮助(&H)"{MENUITEM "关于(&A)", CM_ABOUT}}2.新建sample.h,代码如下#define CM_FILE_SAVEAS 9072#define CM_FILE_EXIT 9071#define CM_FILE_OPEN 9070#define CM_ABOUT 90693.新建源程序note.c ,代码如下#include <windows.h>#include "sample.h"static char g_szClassName[] = "MyWindowClass";static HINSTANCE g_hInst = NULL;#define IDC_MAIN_TEXT 1001BOOL LoadFile(HWND hEdit, LPSTR pszFileName){HANDLE hFile;BOOL bSuccess = FALSE;hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);if(hFile != INVALID_HANDLE_VALUE){DWORD dwFileSize;dwFileSize = GetFileSize(hFile, NULL);if(dwFileSize != 0xFFFFFFFF){LPSTR pszFileText;pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);if(pszFileText != NULL){DWORD dwRead;if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL)){pszFileText[dwFileSize] = 0;if(SetWindowText(hEdit, pszFileText))bSuccess = TRUE;}GlobalFree(pszFileText);}}CloseHandle(hFile);}return bSuccess;}BOOL SaveFile(HWND hEdit, LPSTR pszFileName){HANDLE hFile;BOOL bSuccess = FALSE;hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, 0,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);if(hFile != INVALID_HANDLE_VALUE){DWORD dwTextLength;dwTextLength = GetWindowTextLength(hEdit);if(dwTextLength > 0)LPSTR pszText;pszText = (LPSTR)GlobalAlloc(GPTR, dwTextLength + 1);if(pszText != NULL){if(GetWindowText(hEdit, pszText, dwTextLength + 1)){DWORD dwWritten;if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL))bSuccess = TRUE;}GlobalFree(pszText);}}CloseHandle(hFile);}return bSuccess;}BOOL DoFileOpenSave(HWND hwnd, BOOL bSave){OPENFILENAME ofn;char szFileName[MAX_PATH];ZeroMemory(&ofn, sizeof(ofn));szFileName[0] = 0;ofn.lStructSize = sizeof(ofn);ofn.hwndOwner = hwnd;ofn.lpstrFilter = "文本文件(*.txt)\0*.txt\0所有文件(*.*)\0*.*\0\0";ofn.lpstrFile = szFileName;ofn.nMaxFile = MAX_PATH;ofn.lpstrDefExt = "txt";if(bSave){ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;if(GetSaveFileName(&ofn))if(!SaveFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName)){MessageBox(hwnd, "保存文件失败.", "错误信息",MB_OK | MB_ICONEXCLAMATION);return FALSE;}}}else{ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;if(GetOpenFileName(&ofn)){if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName)){MessageBox(hwnd, "打开文件失败.", "错误信息",MB_OK | MB_ICONEXCLAMATION);return FALSE;}}}return TRUE;}LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {switch(Message){case WM_CREATE:CreateWindow("EDIT", "",WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,hwnd, (HMENU)IDC_MAIN_TEXT, g_hInst, NULL);SendDlgItemMessage(hwnd, IDC_MAIN_TEXT, WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0));break;case WM_SIZE:if(wParam != SIZE_MINIMIZED)MoveWindow(GetDlgItem(hwnd, IDC_MAIN_TEXT), 0, 0, LOWORD(lParam),HIWORD(lParam), TRUE);break;case WM_SETFOCUS:SetFocus(GetDlgItem(hwnd, IDC_MAIN_TEXT));break;case WM_COMMAND:switch(LOWORD(wParam)){case CM_FILE_OPEN:DoFileOpenSave(hwnd, FALSE);break;case CM_FILE_SAVEAS:DoFileOpenSave(hwnd, TRUE);break;case CM_FILE_EXIT:PostMessage(hwnd, WM_CLOSE, 0, 0);break;case CM_ABOUT:MessageBox (NULL, "一个Windows C 记事本程序" , "关于...", 0);}break;case WM_CLOSE:DestroyWindow(hwnd);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, Message, wParam, lParam);}return 0;}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){WNDCLASSEX WndClass;HWND hwnd;MSG Msg;g_hInst = hInstance;WndClass.cbSize = sizeof(WNDCLASSEX);WndClass.style = 0;WndClass.lpfnWndProc = WndProc;WndClass.cbClsExtra = 0;WndClass.cbWndExtra = 0;WndClass.hInstance = g_hInst;WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); WndClass.lpszMenuName = "MAINMENU";WndClass.lpszClassName = g_szClassName;WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);if(!RegisterClassEx(&WndClass)){MessageBox(0, "注册窗口失败", "错误信息",MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);return 0;}hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,g_szClassName,"一个记事本程序",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,NULL, NULL, g_hInst, NULL);if(hwnd == NULL){MessageBox(0, "创建窗口失败", "错误信息",MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);return 0;}ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);while(GetMessage(&Msg, NULL, 0, 0)){TranslateMessage(&Msg);DispatchMessage(&Msg);}return Msg.wParam;}二:编译,连接运行在编译之前需要一个sample.ico图标.打开运行,输入cmd,回车,进入dos命令行进入d:\note下1.用dir命令列一下当前目录包含文件。
记事本源代码(c)
COORD coord = bInfo.dwCursorPosition; //将显存中光标信息赋予coord
*x = coord.X;
*y = coord.Y;
}
{
printf("%c",__strInput[__curStrInput]);
__curStrInput++;
}
else if(__cInput == 27) //EXC退出
{
__curStrInput = 0;
__nLastCur = 0; //字符位数标志
while(1)
{
wherexy(&x,&y); //获得当前光标位置
__cInput = getch();
if(__cInput > 47 && __cInput < 58 && __nLastCur < M && (__cInput != 48 | | __curStrInput != 0))
}
void gotoxy(int x,int y)
{
COORD coord; //windows.h中描述点的结构体
coord.X = x;
coord.Y = y;
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄
gotoxy(x + 1,y);
}
else
{
lse if(__cInput == 13) //回车处理
记事本程序(C语言)[1]
#include <stdio.h>#include <string.h>#include <conio.h>#include <time.h>#include <stdlib.h>#include <windows.h>#define hh 70 //设置自动换行的位置char file_name_now[100]; //全局保存加载文件路径typedef struct char_node //结点,date存储字符数据,c存储汉字、英文识别码..汉字为1,英文为0{char date;int c;struct char_node *next; //保存下一结点地址struct char_node *up; //保存上一结点地址}node;typedef struct xy_node //x保存换行的位置{int x;struct xy_node *next;struct xy_node *up;}xy;time_t now; //实例化time_t结构struct tm *timenow;void gotoxy(int x, int y) //自定义函数,跳转光标。
{COORD pos = {x,y};HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hOut, pos);}void wherexy(int *x,int *y) //自定义函数,获取光标当前位置。
{HANDLE h1;CONSOLE_SCREEN_BUFFER_INFO scrInfo;h1=GetStdHandle(STD_OUTPUT_HANDLE);GetConsoleScreenBufferInfo(h1,&scrInfo);*x=scrInfo.dwCursorPosition.X;*y=scrInfo.dwCursorPosition.Y;}char main_win() //主界面选择函数{char choose;system("if not exist C:\\我的记事本md C:\\我的记事本");system("cls");printf("\t\t\t****************************\n");printf("\t\t\t 记事本\n");printf("\t\t\t****************************\n\n");printf("\t\t\t 1.新建我的记事本\n\n");printf("\t\t\t 2.加载我的记事本\n\n");printf("\t\t\t 3.删除我的记事本\n\n");printf("\t\t\t 4.退出记事本程序\n\n");printf("\t\t\t *请输入你的选择:\n\n\t\t\t\t ");scanf("%s",&choose);return choose;}void new_file_win() //新建记事本{int flag;FILE *fp;FILE *date;char txt[5]=".txt";char input[30];char re[30];void new_file();for(flag=0;flag==0;){system("cls");printf("\t\t\t****************************\n");printf("\t\t\t 新记事本\n");printf("\t\t\t****************************\n\n");strcpy(re,"c:\\我的记事本\\");printf("\t\t\t *请输入记事本名称:\n\t\t\t ");scanf("%s",input);strcat(re,input);strcat(re,txt);if((fp=fopen(re,"rb"))!=NULL){printf("\n\n\n\t\t - - - - - - - - - - - - - - - - - - - - - - -\n\t\t 新记事本和原有记事本名称重复,请重新命名!\n\t\t\t ");fclose(fp);system("pause");flag=0;}else{system("cls");printf("\t\t\t****************************\n");printf("\t\t\t 新记事本\n");printf("\t\t\t****************************\n\n");fp=fopen(re,"ab+");printf("\t\t\t已创建记事本:%s\n\n\t\t\t ",re);flag=1;fclose(fp);system("pause");}}strcpy(file_name_now,re);new_file();}void new_file() //新记事本编辑{FILE *fp;node *h,*p,*s; //p指向当前节点的前一个节点,s指向当前节点xy *h1,*p1,*s1; //存储光标位置int x,y,x_temp=0; //光标坐标x_temp用于自动换行int c[2],hz[3]; //存储用户即时输入的字符int flag=0,flag_hz=0; //flag_hz标记获取的字符是汉字还是英文char empty='\0';int huanhang=10; //换行system("cls");time(&now);timenow = localtime(&now);printf("*打开记事本时间:%s*当前记事本:%s\t\t ENTER:换行ESC:退出、保存\n",asctime(timenow),file_name_now);printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");if((fp=fopen(file_name_now,"ab+"))==NULL){printf("不能连接%s\n",file_name_now);system("pause");return;}if((h=(node *)malloc(sizeof(node)))==NULL){printf("不能分配内存!\n");system("pause");return;}h->date='\0';h->c=0;h->next=NULL;h->up=NULL;p=h;if((h1=(xy *)malloc(sizeof(xy)))==NULL) //创建存储x轴坐标的链表{printf("不能分配内存!\n");system("pause");return;}h1->x=0;h1->next=NULL;h1->up=NULL;p1=h1;while(c[0]!=27) //监测ESC键--退出保存{c[0]=getch();if(x_temp==(hh-1) || x_temp>=hh) //这里是汉字换行的关键,防止汉字的两个字节分别存储在两行上{if(!(x_temp==(hh-1) && flag_hz==1)){if((s=(node *)malloc(sizeof(node)))==NULL){printf("不能分配内存!\n");system("pause");return;}p->next=s;s->date=10;s->c=0;s->next=NULL;s->up=p;p=s;printf("%c",s->date);if((s1=(xy *)malloc(sizeof(xy)))==NULL){printf("不能分配内存!\n");system("pause");return;}p1->next=s1;s1->x=x_temp;s1->next=NULL;s1->up=p1;p1=s1;x_temp=0;}}if(c[0]==13) //监测回车--把回车改为换行,并保存{c[0]=10;wherexy(&x,&y);if((s=(node *)malloc(sizeof(node)))==NULL){printf("不能分配内存!\n");system("pause");return;}p->next=s;s->date=c[0];s->c=0;s->next=NULL;s->up=p;p=s;printf("%c",10);x_temp=0;if((s1=(xy *)malloc(sizeof(xy)))==NULL){printf("不能分配内存!\n");system("pause");return;}p1->next=s1;s1->x=x; //记录回车时的位置s1->next=NULL;s1->up=p1;p1=s1;}else if(c[0]==0xE0) //监测方向键等扩展键,可插入字符(可扩展很多功能,待实现。
C#向带有书签的word模板自动填充内容的方法
C#向带有书签的word模板⾃动填充内容的⽅法本篇⽂章经过转载⽽来,⾃⼰在项⽬中进⾏运⽤,效果确实不错,推荐⼤家尝试!这篇⽂章主要介绍了C#实现通过模板⾃动创建Word⽂档的⽅法,详细讲述了C#⽣成Word⽂档的实现⽅法,是⾮常实⽤的技巧,需要的朋友可以参考下本⽂实例讲述了C#实现通过模板⾃动创建Word⽂档的⽅法,是⾮常实⽤的技巧。
分享给⼤家供⼤家参考。
具体实现⽅法如下:引⾔:前段时间有项⽬要⽤c#⽣成Word格式的计算报告,通过⽹络查找到很多内容,但是都很凌乱,于是⾃⼰决定将具体的步骤总结整理出来,以便于更好的交流和以后相似问题可以迅速的解决!现通过具体的⽰例演⽰具体的步骤:第⼀步,制作模板1.新建⼀个⽂档,设置⽂档内容。
2.在相应位置插⼊书签;将⿏标定位到要插⼊书签的位置,点击“插⼊”>“书签”,弹出对话框,输⼊书签名,点击“添加”按钮。
3.保存模板,命名为“模板1.dot”或者“模板1.doc”第⼆步,设置项⽬中的引⽤1.右击“解决⽅案资源管理器”中的项⽬⽬录下的“引⽤”,选择“添加引⽤”,打开“添加引⽤”对话框2.在“添加引⽤”对话框中,选择“COM”>“Microsoft Word 11.0 Object Library”,点击“确定”按钮3.相同操作打开“添加引⽤”对话框中,选择“浏览”项,查找到”Microsoft.Office.Interop.Word.dll”⽂件,选中它,点击“确定”按钮注意:此处要查找的“Microsoft.Office.Interop.Word.dll”版本必须为“11.*.*.*”,“*”代表数字第三步,编码这⼀步分成两个部分第⼀部分,Report类的编码这部分我已经封装好,为⽂件“Report.cs”,可以直接使⽤具体实现代码如下:(代码中有⽐较详细的注释)usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingMicrosoft.Office.Interop.Word;namespaceMYNAMESPACE //这边需要换成⾃⼰的命名空间名{class Report{private _ApplicationwordApp= null;private _DocumentwordDoc= null;public _ApplicationApplication{get{returnwordApp;}set{wordApp = value;}}public_DocumentDocument{get{returnwordDoc;}set{wordDoc = value;}}//通过模板创建新⽂档public void CreateNewDocument(stringfilePath)killWinWordProcess();wordApp = newApplicationClass();wordApp.DisplayAlerts =WdAlertLevel.wdAlertsNone;wordApp.Visible =false;object missing =System.Reflection.Missing.Value;object templateName =filePath;wordDoc= wordApp.Documents.Open(ref templateName, refmissing,refmissing, refmissing,refmissing, refmissing, refmissing,refmissing, refmissing,refmissing, refmissing, refmissing,refmissing, refmissing,refmissing, refmissing);}//保存新⽂件public void SaveDocument(stringfilePath){object fileName =filePath;object format =WdSaveFormat.wdFormatDocument;//保存格式object miss =System.Reflection.Missing.Value;wordDoc.SaveAs(ref fileName, refformat, refmiss,refmiss, refmiss,refmiss, refmiss,refmiss, refmiss,refmiss, refmiss,refmiss, refmiss,refmiss, refmiss,refmiss);//关闭wordDoc,wordApp对象object SaveChanges =WdSaveOptions.wdSaveChanges;object OriginalFormat =WdOriginalFormat.wdOriginalDocumentFormat;object RouteDocument =false;wordDoc.Close(refSaveChanges, refOriginalFormat, refRouteDocument);wordApp.Quit(refSaveChanges, refOriginalFormat, refRouteDocument);}//在书签处插⼊值public bool InsertValue(stringbookmark, stringvalue){object bkObj =bookmark;if(wordApp.ActiveDocument.Bookmarks.Exists(bookmark)){wordApp.ActiveDocument.Bookmarks.get_Item(refbkObj).Select();wordApp.Selection.TypeText(value);returntrue;}returnfalse;}//插⼊表格,bookmark书签public Table InsertTable(string bookmark, introws, intcolumns,floatwidth){object miss =System.Reflection.Missing.Value;object oStart =bookmark;Range range =wordDoc.Bookmarks.get_Item(refoStart).Range;//表格插⼊位置Table newTable =wordDoc.Tables.Add(range,rows, columns, refmiss, refmiss);//设置表的格式newTable.Borders.Enable =1; //允许有边框,默认没有边框(为0时报错,1为实线边框,2、3为虚线边框,以后的数字没试过) newTable.Borders.OutsideLineWidth=WdLineWidth.wdLineWidth050pt;//边框宽度if(width != 0){newTable.PreferredWidth=width;//表格宽度}newTable.AllowPageBreaks =false;return newTable;}//合并单元格表名,开始⾏号,开始列号,结束⾏号,结束列号public void MergeCell(Microsoft.Office.Interop.Word.Tabletable, introw1, intcolumn1,introw2, intcolumn2){table.Cell(row1,column1).Merge(table.Cell(row2,column2));}//设置表格内容对齐⽅式Align⽔平⽅向,Vertical垂直⽅向(左对齐,居中对齐,右对齐分别对应Align和Vertical的值为-1,0,1) public void SetParagraph_Table(Microsoft.Office.Interop.Word.Tabletable, intAlign, intVertical){switch(Align){case-1:table.Range.ParagraphFormat.Alignment=WdParagraphAlignment.wdAlignParagraphLeft;break;//左对齐case0: table.Range.ParagraphFormat.Alignment=WdParagraphAlignment.wdAlignParagraphCenter;break;//⽔平居中case1: table.Range.ParagraphFormat.Alignment=WdParagraphAlignment.wdAlignParagraphRight;break;//右对齐}switch(Vertical){case-1: table.Range.Cells.VerticalAlignment=WdCellVerticalAlignment.wdCellAlignVerticalTop;break;//顶端对齐case0: table.Range.Cells.VerticalAlignment=WdCellVerticalAlignment.wdCellAlignVerticalCenter;break;//垂直居中case1: table.Range.Cells.VerticalAlignment=WdCellVerticalAlignment.wdCellAlignVerticalBottom;break;//底端对齐}//设置表格字体public void SetFont_Table(Microsoft.Office.Interop.Word.Tabletable, stringfontName, doublesize){if(size != 0){table.Range.Font.Size =Convert.ToSingle(size);}if(fontName !=""){ =fontName;}}//是否使⽤边框,n表格的序号,use是或否public void UseBorder(intn,booluse){if(use){wordDoc.Content.Tables[n].Borders.Enable =1; //允许有边框,默认没有边框(为0时⽆边框,1为实线边框,2、3为虚线边框,以后的数字没试过) }else{wordDoc.Content.Tables[n].Borders.Enable =2; //允许有边框,默认没有边框(为0时⽆边框,1为实线边框,2、3为虚线边框,以后的数字没试过) }}//给表格插⼊⼀⾏,n表格的序号从1开始记publicvoidAddRow(intn){objectmiss =System.Reflection.Missing.Value;wordDoc.Content.Tables[n].Rows.Add(refmiss);}//给表格添加⼀⾏publicvoidAddRow(Microsoft.Office.Interop.Word.Tabletable){objectmiss =System.Reflection.Missing.Value;table.Rows.Add(refmiss);}//给表格插⼊rows⾏,n为表格的序号publicvoidAddRow(intn, introws){objectmiss =System.Reflection.Missing.Value;Microsoft.Office.Interop.Word.Tabletable = wordDoc.Content.Tables[n];for(inti = 0; i < rows; i++){table.Rows.Add(refmiss);}}//给表格中单元格插⼊元素,table所在表格,row⾏号,column列号,value插⼊的元素public void InsertCell(Microsoft.Office.Interop.Word.Tabletable, introw, intcolumn,stringvalue){table.Cell(row,column).Range.Text =value;}//给表格中单元格插⼊元素,n表格的序号从1开始记,row⾏号,column列号,value插⼊的元素public void InsertCell(intn, introw,intcolumn, stringvalue){wordDoc.Content.Tables[n].Cell(row,column).Range.Text =value;}//给表格插⼊⼀⾏数据,n为表格的序号,row⾏号,columns列数,values插⼊的值public void InsertCell(intn, introw,intcolumns, string[] values){Microsoft.Office.Interop.Word.Tabletable = wordDoc.Content.Tables[n];for(inti = 0; i < columns; i++){table.Cell(row,i + 1).Range.Text =values[i];}}//插⼊图⽚public void InsertPicture(stringbookmark, stringpicturePath, floatwidth, floathight){object miss = System.Reflection.Missing.Value;object oStart =bookmark;Object linkToFile =false; //图⽚是否为外部链接Object saveWithDocument =true; //图⽚是否随⽂档⼀起保存object range =wordDoc.Bookmarks.get_Item(refoStart).Range;//图⽚插⼊位置wordDoc.InlineShapes.AddPicture(picturePath,reflinkToFile, refsaveWithDocument, refrange);wordDoc.Application.ActiveDocument.InlineShapes[1].Width=width; //设置图⽚宽度wordDoc.Application.ActiveDocument.InlineShapes[1].Height=hight; //设置图⽚⾼度}//插⼊⼀段⽂字,text为⽂字内容public void InsertText(stringbookmark, stringtext){object oStart =bookmark;object range =wordDoc.Bookmarks.get_Item(refoStart).Range;Paragraph wp =wordDoc.Content.Paragraphs.Add(refrange);wp.Format.SpaceBefore= 6;wp.Range.Text =text;wp.Format.SpaceAfter =24;wp.Range.InsertParagraphAfter();st.Range.Text ="\n";}//杀掉winword.exe进程public void killWinWordProcess(){System.Diagnostics.Process[]processes=System.Diagnostics.Process.GetProcessesByName("WINWORD");foreach(System.Diagnostics.Processprocess inprocesses){boolb = process.MainWindowTitle=="";if(process.MainWindowTitle ==""){process.Kill();}}}}}第⼆部分,具体⽣成⽂档的编码代码见下⽂:1.⾸先需要载⼊模板Report report =new Report();report.CreateNewDocument(TemPath); //模板路径2.插⼊⼀个值report.InsertValue("Bookmark_value","世界杯");//在书签“Bookmark_value”处插⼊值3.创建⼀个表格Table table =report.InsertTable("Bookmark_table", 2, 3, 0); //在书签“Bookmark_table”处插⼊2⾏3列⾏宽最⼤的表4.合并单元格report.MergeCell(table, 1, 1, 1, 3); //表名,开始⾏号,开始列号,结束⾏号,结束列号5.表格添加⼀⾏report.AddRow(table); //表名6.在单元格中插⼊值report.InsertCell(table, 2, 1,"R2C1");//表名,⾏号,列号,值7.设置表格中⽂字的对齐⽅式report.SetParagraph_Table(table, -1, 0);//⽔平⽅向左对齐,垂直⽅向居中对齐8.设置表格字体report.SetFont_Table(table,"宋体", 9);//宋体9磅9.给现有的表格添加⼀⾏report.AddRow(1);//给模板中第⼀个表格添加⼀⾏10.确定现有的表格是否使⽤边框eBorder(1,true); //模板中第⼀个表格使⽤实线边框11.给现有的表格添加多⾏report.AddRow(1, 2);//给模板中第⼀个表格插⼊2⾏12.给现有的表格插⼊⼀⾏数据string[] values={"英超", "意甲", "德甲","西甲", "法甲" };report.InsertCell(1, 2, 5,values); //给模板中第⼀个表格的第⼆⾏的5列分别插⼊数据13.插⼊图⽚string picturePath = @"C:\Documents and Settings\Administrator\桌⾯\1.jpg";report.InsertPicture("Bookmark_picture",picturePath, 150, 150); //书签位置,图⽚路径,图⽚宽度,图⽚⾼度14.插⼊⼀段⽂字string text = "长期从事电脑操作者,应多吃⼀些新鲜的蔬菜和⽔果,同时增加维⽣素A、B1、C、E的摄⼊。
C#中调用windows记事本程序代码
C#中调用windows记事本程序代码C#中调用windows记事本程序代码/** 编程语言:Visual C# (Beta 2)* 功能:通过C#程序调用Windows记事本程序编辑一个名为test.txt 的文本文件。
* 在整个程序中System.Diagnostics.Process.Start(Info)* 为主要语句* 如果只是单独执行一个外部程序,可用一条如下代码即可:* System.Diagnostics.Process.Start("外部程序名","启动参数");*/using System;class test{static void Main(){//声明一个程序信息类System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();//设置外部程序名Info.FileName = "notepad.exe";//设置外部程序的启动参数(命令行参数)为test.txtInfo.Arguments = "test.txt";//设置外部程序工作目录为 C:\Info.WorkingDirectory = "C:\\";//声明一个程序类System.Diagnostics.Process Proc ;try{//启动外部程序//Proc = System.Diagnostics.Process.Start(Info);}catch(ponentModel.Win32Exception e){Console.WriteLine("系统找不到指定的程序文件。
\r{0}", e);return;}//打印出外部程序的开始执行时间Console.WriteLine("外部程序的开始执行时间:{0}", Proc.StartTime);//等待3秒钟Proc.WaitForExit(3000);//如果这个外部程序没有结束运行则对其强行终止if(Proc.HasExited == false){Console.WriteLine("由主程序强行终止外部程序的运行!");Proc.Kill();}else{Console.WriteLine("由外部程序正常退出!");}Console.WriteLine("外部程序的结束运行时间:{0}", Proc.ExitTime);Console.WriteLine("外部程序在结束运行时的返回值:{0}", Proc.ExitCode);}。
c#向记事本中(.txt)写入读取数据
c#向记事本中(.txt)写⼊读取数据做记事本⼀般⽤RICHTEXTBOX控件⽅便⼀些先拖放⼀个RichTextBox控件到窗体上.我写了⼏个⽅法如下,你要完整的程序我可以发你邮箱或者QQ传你private string read(string path){FileStream fin = new FileStream(path,FileMode.Open,FileAccess.Read);StreamReader brin = new StreamReader(fin,Encoding.Default);string s = brin.ReadToEnd();brin.Close();return s;}private string oprater(string s){return s =s+"\r\n"+ textBox1.Text +"\r\n"+ DateTime.Now.ToString();}private void save(string s,string path){FileStream fout = new FileStream(path,FileMode.Create,FileAccess.Write);StreamWriter brout = new StreamWriter(fout,Encoding.Default);brout.Write(s);brout.Close();}/*测试数据表:test3 Create Table test3(ID bigint not null,Files Imagenull)*/private void button1_Click(objectsender, EventArgs e){FileStream fs =File.OpenRead(this.textBox1.Text.Trim());byte[] bytes =new byte[fs.Length];fs.Read(bytes, 0, bytes.Length);SqlConnection con = new SqlConnection(ConStr);SqlCommand cmd = new SqlCommand("", con);mandText = "Insert into tuzhivalues('4','B8814','中冷器',@files,'2009-11-10')";SqlParameter paraFile = new SqlParameter("@files", SqlDbType.Image);paraFile.Value = bytes;cmd.Parameters.Add(paraFile);this.Cursor =Cursors.WaitCursor;con.Open();int i =cmd.ExecuteNonQuery();MessageBox.Show("成功");con.Close();this.Cursor = Cursors.Default;}private void button2_Click(object sender,EventArgs e){byte[] mypdffile = null;SqlConnection con = new SqlConnection(ConStr);SqlCommand cmd = new SqlCommand("", con);mandText = "Select tu From tuzhi Where ID='1'";con.Open();SqlDataReader dr = cmd.ExecuteReader();while (dr.Read()){mypdffile = (byte[])dr.GetValue(0);}con.Close();this.Cursor = Cursors.WaitCursor;try{FileStream fs = newFileStream("D:\\aa1.pdf", FileMode.Create);fs.Write(mypdffile, 0, mypdffile.Length);fs.Flush();fs.Close();this.webBrowser1.Navigate("D:\\aa1.pdf");}catch { }this.Cursor = Cursors.Default;}private void Form1_Load(object sender, EventArgse){//连接字符串⾃⼰改下,这是我的测试数据库的链接字符串 ConStr = "server=192.168.0.2;database=drawing;uid=sa;Pwd=7612098;";}。
C#程序中:如何向记事本中写入内容和导出内容
C#程序中:如何向记事本中写⼊内容和导出内容在C#程序中在程序外部存储⼀些配置信⼼标记,如果⽤数据库就有些⼤材⼩⽤了,因此⽤*.txt、*.dat等存储,即⽅便⼜快捷,还可以减轻程序负担下⾯研究⼀下 C#程序中:如何向记事本中写⼊内容和导出内容。
下⾯的代码⽰例演⽰如何使⽤ WriteAllText ⽅法在⽂件中写⼊内容。
在此⽰例中,如果⽂件尚不存在,则创建⼀个⽂件,并向其中添加内容。
using System;using System.IO;using System.Text;class Test{public static void Main(){string path = @"c:\temp\MyTest.txt";//写⼊内容⽂件的路径,也是导出内容⽂件的路径// 这个⽅法只能向⽂件中添加⽂本⼀次,每次会覆盖原⽂本if (!File.Exists(path)){// ⽬标⽂本如果不存在,则新建⼀个新的⽂件string createText = "Hello and Welcome" + Environment.NewLine;//⽂本内容,后加命令为换⾏命令File.WriteAllText(path, createText, Encoding.UTF8);//写⼊内容}// ⽬标⽂本存在的情况下,⽤下⾯的⽅法添加⽂本,不会覆盖原来的内容,只做追加string appendText = "This is extra text" + Environment.NewLine;File.AppendAllText(path, appendText, Encoding.UTF8);//写⼊内容// 根据路径导出内容.string readText = File.ReadAllText(path, Encoding.UTF8);//导出内容并接受Console.WriteLine(readText);}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相信你和我一样也喜欢随时鼓捣些有趣的代码,不然你也不会找到这个文档,这些代码经过编译连接之后会形成一个可以自动打开记事本并向记事本中录入相关文字,在这中间嵌入的是VBS代码,我个人对BVS代码是有某种特殊感情的,特别喜欢这个代码。
不多说,先看代码:
//outfile.cpp--writing to a file
#include<iostream>
#include<fstream>
int main(){
using namespace std;
char automobile[]={"on error resume next\nset WshShell= WScript.CreateObject(\"WScript.Shell\")\nWshShell.Run\"notepad.exe\"\nWScript.Sleep 2000\nWshShell.SendKeys\"hello world!\"\n"};
ofstream outFile;//create object for output
outFile.open("carinfo.vbs");//associate with a file
cout.precision(2);
cout.setf(ios_base::showpoint);
outFile<<fixed;
outFile.precision(2);
outFile.setf(ios_base::showpoint);
outFile<<automobile<<endl;
outFile.close();//done with file
system("carinfo.vbs");
return0;
}。