数据结构——文件
- 格式:ppt
- 大小:3.17 MB
- 文档页数:53
GIF文件的数据结构以及播放和分解GIF的源代码GIF 文件内部是按块划分的,包括控制块和数据块两种。
控制块控制数据块的行为,不同的控制块包含不同的控制参数。
数据块只包含一些8bit的字符流,由它前面的控制块来决定它的功能,每个数据块0—255个字节,数据块的第一个字节指出这个数据块长度(字节数),计算数据块的长度时不包括这个字节,所以一个空的数据块也有一个字节,那就是数据块的大小&H00。
控制块中的逻辑屏幕描述块和全局彩色表的作用范围是整个数据流, 其他控制块仅控制跟在它们后面的图形描述块。
GIF文件的典型结构如下表所示。
---------------------------------------顺号结构名称长度(字节)---------------------------------------1GIF文件头 62逻辑屏幕描述块73全局彩色表≤7684图形描述块105局部彩色表(可重复n次)≤7686表式压缩图像数据7图像控制扩展块88无格式文本扩展块9注释扩展块4-25810 应用程序扩展块11 GIF文件结束块 1----------------------------------------一、控制块1. GIF文件头文件头由6个固定字节组成,结构如下表所示。
单位:字节---------------------偏移量长度域名称---------------------03GIF标记33版本号---------------------GIF标记存放的是“GIF”的Ascii码,版本号存放的是1987年5月发布的“87a”或者1989年7月发布的“89a”,或者更加新的版本号。
2. 逻辑屏幕描述块逻辑屏幕描述块紧跟在GIF文件头之后。
逻辑屏幕描述块由7个固定字节组成,包含定义图像显示区域的参数,包括背景颜色信息。
这个数据块中的坐标相对于虚拟屏幕的左上角,不一定是指显示屏幕的绝对坐标。
主 题: 《数据结构》学习笔记内 容:《数据结构》学习笔记八——文件一、文件的概念:1、文件是存储在外部介质上的数据的集合。
外部介质:软盘,硬盘,光盘等。
2、计算机以文件为单位对数据进行管理。
3、C文件分为ASCII码文件和二进制文件。
i. As码文件:每字节代表一个字符。
(文本文件)ii. 二进制文件:数据以二进制形式存放。
例如:整数10000用AS码文件则需要五个字节:一个字节存1的AS码,四个字节存0的AS码。
00110001 00110000 00110000 00110000 00110000(1) (0) (0) (0) (0)用二进制文件则仅需要二个字节:00100111 00010000100000=213+210+29+28+24所以一个C文件是一个字节流或二进制流。
4. 在C语言中对文件的存取是以字符(字节)为单位的。
二、在C程序中使用文件的原因:1、便于调试程序。
例如“迷宫”程序。
2、处理大量的信息。
如学生成绩表,教师情况表。
三、实例:1、将已知的链表中的信息输出到文件中。
# include “stdio.h”main(){……FILE*mi, *fopen();…………(建立链表)…………mi=fopen(“mydat”,“w”)p=head;while(p){cha=p->data;putc(cha,mi);p=p->next;}fclose(mi)}2、用文件上的信息建立链表。
# include “stdio.h”main(){……FILE *mi, *fopen();mi=open(“mydat”,”r”);cha=getc(mi);p=(……)malloc(……);head=p;p->data=cha;while(!feof(mi)){cha=getc(mi);q=(……)malloc(……);q->data=cha;q->next=q;p=q;}fclose(mi);}3、从已知的的学生文件中读入:# include “stdio.h”{struct student{char name[10];int num;int age;char addr[20];}studFILE *fp, *fopen();fp=fopen(“stulist”,”rb”);fread(&stud, sizeof(struct student), l,fp);while(!feof(fp)){printf(“%-15s%4d%4d%-25s\n”,, stud.num, stud.age, stud.addr);fread(&stud, sizeof(struct student), l,fp);}fclose(fp);}4、基本循环:fread(……)while(!feof(…)){处理一记录;fread(…);}掌握这个循环,对学习“数据库”及信息处理有很大的帮助。
纺织提花文件数据结构分析之二—— EP文件EP提花EP格式文件,是最广泛的提花机应用格式,最早应该是由英国BONAS发明,之后逐渐形成一个标准,目前国内外大多提花机均支持EP文件。
了解熟悉EP文件数据结构也是从业人员最底层、最基本的知识。
偏移量0x0位置是EP的标识,但该标识不是唯一标识,即使留空也一样。
偏移量0x3位置起的2个字节为EP文件的高度,也就是EP的总梭数,16位计算。
偏移量0x6到0x13为EP文件的文件名,共8个字节。
偏移量0x15(0xF)是EP文件的控制针长度,默认00为32针,01=8针,08=64针等等。
偏移量0x20起的2个字节为EP的宽度,也称笼头针数,16位计算,通常在控制针长度32的情况下,[0x21地址数据*8+1]*32控制针,最后加16位地址首的8位数据0x20。
如(05*8+1)*32 + H(20) = 1344针,典型的缪勒MULLER针数。
从0x22开始就是EP数据了,数据区的每个字节表示8个提花针数,也就是二进制的转换,不足四位一定要补0,数据00表示全无(即全沉),数据FF表示全值(即8针全提),数据区的并排长度通过EP宽度值跳转。
关于提花数据区的字节数据转换为经纬提花的算法(十六进制转二进制)十六进制二进制0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001A 1010B 1011C 1100D 1101E 1110F 1111二进制数据的1表示提花,0为不提。
那么根据图示的数据区前8位00 00 A0 5A 55 55 55 55十六进制数据转换为笼头提花的动作为:0000 0000 0000 0000 1010 0000 0101 1010 0101 0101 0101 0101 0101 0101 0101 0101 共8字节*8 =64针提花针动作数据。
明白这些,我们还可以用十六进制数值来表示一个平纹提法,比如16x2的平纹织法提花数值是55 55 AA AA.55 55 = 0101 0101 第一排提法AA AA = 1010 1010 第二排提法正是普通平纹1上1下的提法。
文件系统数据结构文件系统是计算机操作系统中用于管理计算机文件的一种机制,它使用特定的数据结构来组织和存储文件及其相关信息。
文件系统的设计和实现涉及到多种数据结构,包括目录结构、索引结构和文件分配表等。
在本文中,我们将详细介绍文件系统中常用的数据结构及其功能。
一、目录结构目录结构是文件系统中组织文件和文件夹的一种方式。
它使用树状结构来表示文件和文件夹之间的层次关系,使得用户可以方便地浏览和管理文件。
在目录结构中,每个文件夹表示为一个目录项,该目录项包含了文件夹的名称、创建时间、访问权限等信息。
而文件夹中的文件则以文件项的形式存在,文件项包含了文件的名称、大小、创建时间等属性。
目录结构的实现可以使用树结构或者图结构。
其中,树结构是最常见的一种实现方式。
在树结构中,每个目录项都可以作为树的一个节点,根节点代表根目录,每个子节点代表一个子目录或者文件。
通过遍历树的节点,用户可以逐层查找和访问文件。
二、索引结构索引结构是一种基于关键字的数据结构,用于快速定位文件的相关信息。
在文件系统中,文件的内容通常分散存储在磁盘上的不同位置,为了提高文件的访问速度,可以使用索引结构建立文件与存储位置的映射关系。
常见的索引结构包括位图索引、哈希索引和B树索引等。
位图索引用一个位图来表示文件的存储位置,每个位对应一个存储块,通过位图可以迅速定位到文件所在的位置。
哈希索引使用哈希函数将文件的关键字映射到存储位置,从而实现快速定位。
而B树索引是一种多路搜索树,用于支持范围查询和高效的插入和删除操作。
索引结构的选择依赖于文件系统的需求和性能要求。
不同的索引结构具有不同的特点和适用范围,需要根据具体情况进行选择和优化。
三、文件分配表文件分配表是文件系统中用于管理文件存储空间的一种数据结构。
它记录了文件在磁盘上分配的存储块,以及存储块之间的关系。
文件的存储块可以是连续的,也可以是离散的。
文件分配表采用表格的形式来表示文件在磁盘上的分布情况。
第十一章文件一、选择题1. 散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的()方法是散列文件的关键。
【哈尔滨工业大学 2001二、5 (2分)】A. 散列函数B. 除余法中的质数C. 冲突处理D. 散列函数和冲突处理2. 顺序文件采用顺序结构实现文件的存储,对大型的顺序文件的少量修改,要求重新复制整个文件,代价很高,采用()的方法可降低所需的代价。
【北京邮电大学 2000 二、8 (20/8分)】A. 附加文件B. 按关键字大小排序C. 按记录输入先后排序D. 连续排序3. 用ISAM组织文件适合于()。
【中科院软件所 1998】A.磁带 B.磁盘4.下述文件中适合于磁带存储的是()。
【中科院计算所 2000 一、7(2分)】A. 顺序文件B. 索引文件C. 散列文件D. 多关键字文件5. 用ISAM和VSAM组织文件属于()。
A. 顺序文件B. 索引文件C. 散列文件【中国科技大学 1998 二、5(2分)中科院计算所 1998 二、5(2分)】6. ISAM文件和VASM文件属于()。
【山东大学 2001 二、5 (1分)】A. 索引非顺序文件B. 索引顺序文件C. 顺序文件D. 散列文件7. B+树应用在()文件系统中。
【北京邮电大学 2001 一、1(2分)】A. ISAMB. VSAM二、判断题1. 文件是记录的集合,每个记录由一个或多个数据项组成,因而一个文件可看作由多个记录组成的数据结构。
【长沙铁道学院 1998 一、5 (1分)】2. 倒排文件是对次关键字建立索引。
【南京航空航天大学 1997 一、10(1分)】3. 倒排序文件的优点是维护简单。
【南京航空航天大学 1995 五、10(1分)】4. 倒排文件与多重表文件的次关键字索引结构是不同的。
【西安交通大学 1996 二、6 (3分)】5. Hash表与Hash文件的唯一区别是Hash文件引入了‘桶’的概念。