新建一个word文档,打开文档后,可以输入一些正文文本。
请点击输入图片描述
点击菜单栏中【插入】,点击插入选项卡中【页眉】。
请点击输入图片描述
在页眉的下拉列表选择一个页眉样式,例如空白三栏。
请点击输入图片描述
选中要插入文档信息的位置,例如左侧,菜单栏中会出现页眉和页脚工具,在设计工具栏中找到【文档信息】。
请点击输入图片描述
点击【文档信息】,下拉选项中选择“文件名”。
请点击输入图片描述
插入文件名后效果如图。同样的方法,还可以插入文件路径、作者等信息,如图所示,在右侧插入文档作者。
请点击输入图片描述
请点击输入图片描述
foxpro中在txt文本文件中追加信息的步骤如下。1、在主菜单中选择“文件→翻开〞命令,翻开“翻开〞对话框。
2、在“查找范围〞下拉框中选择文件所在的目录,从“文件类型〞下拉框中选择“表〞,即出现该目录下所有的表。
3、选中所要添加记录的表后单击“确定〞按钮,翻开该表进行追加即可。
使用这几个函数。
int fseek (FILE *stream,long offset,int fromwhere)
long ftell(FILE *stream)
int rewind(FILE *stream)
可以实现在一个文件的任意位置添加信息。但除了在文件尾添加信息之外,你写将要插入位置后面的文件内容读到缓冲,然后定位文件偏移量插入数据,在将读出来的写入。
因为文件在磁盘上是连续存放的,不可能说直接在中间插入内容而不覆盖原来的,别的语言提供的都是自己按照上述思路写的。
例程:
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <Windows.h>
/* 读出文件放到数组中,新增数据插入到该数组中;
重新将数组中的数据写入该文件中
*/
void main(int argc,char * agrv)
{
FILE *fp
char name[20] //输入变量
int sum //输入变量
char fName[10][20] //可存储10个人名
int fScore[10] //存储10个分数记录
char buff1[20]
char buff2[20]
int i=0
//打开存储文件
if ((fp=fopen("c:\\scorelist.txt","r"))==NULL)
{
printf("Can not open the file")
getch()
exit(0)
}
else
{
while (!feof(fp))
{
ZeroMemory(buff1,sizeof(buff1)) //清空内存
ZeroMemory(buff2,sizeof(buff1))
fgets(buff1,sizeof(buff1),fp) //读取名称
fgets(buff2,sizeof(buff2),fp) //读取第二行分数
if (strcmp(buff1,"")==0)
{
continue
}
else
{
strcpy(fName[i],buff1)
printf("%s",fName[i]) //输出名称
fScore[i] = atoi(buff2) //将字符型转换成int型
printf("%i\n",fScore[i]) //打印输出分数值
}
i++
}
}
fclose(fp)
//打开存储文件,将排好序的数据重新写入文件中
if ((fp=fopen("c:\\scorelist.txt","w"))==NULL)
{
printf("Can not open the file")
getch()
exit(0)
}
else
{
printf("Input the new name:\n")
scanf("%s",name)
printf("Input the new score:\n")
scanf("%i",&sum)
int j =0
//获取新增积分排序位置
while(sum < fScore[j])
{
j++
}
//移动数据重新对数组排序,从后往前排序
int m = i
while (i>j)
{
strcpy(fName[i],fName[i-1])
fScore[i] = fScore[i-1]
i--
}
strcpy(fName[j],name)
strcat(fName[j],"\n")
fScore[j] = sum
//写入文本文件
int k=0
while(k<=m)
{
fputs(fName[k],fp)
fprintf(fp,"%i\n",fScore[k])
k++
}
}
fclose(fp)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)