主题:编程相关知识简介(2005-3-24内容更新)
希望对电脑爱好的网友能认真看完
“功夫在诗外”,学编程或者是学计算机的学生,不可避免的要接触或者是要求了解编程以外的这些知识!
如果不了解系统基本相关原理,也很难写出高质量的程序!
除了系统的基本原理,程序调试技巧也非常重要,写一个程序要10分钟,也许调试它要50分钟或者更多。
在这里我只能找到系统相关的一小部分,更多的只有靠自己去找,我想开阔一下大家的思路!
3、系统篇 2、键盘篇 1、文件篇
当一种编程语言运用熟练以后,就不可避免的接触一些计算机原理和一些相关知识,这样就需要找找相关的计算机书籍来看了,通过学习以后能对自己的编程又有提高,反过来又通过编程促进了对系统的了解,我自己就买过一些计算机原理和汇编语言方面的书籍,虽然我并不学习这些语言.
1 文件系统
文件的操作是电脑最频繁 最常用 的内容 对于一个学习编程的网友来说,对文件的使用是很必要而且很基本的操作,所以我们应该很详细的了解这方面的知识。
我们大家的电脑上99%的用的都是WIN的操作系统,所以我们首先来看看WINDOWS对本地硬盘上的文件管理。
WINDOWS的文件系统有两种格式FAT格式和NTFS格式 ,这两个系统上对文件编程并没有什么很特别的地方,都可以用OPEN 。。。来打开一个文件。
WINDOWS文件系统的最小读写单位是簇,一个簇包含多个扇区(一个扇区有512个字节),也就是一个文件就算你只有1一个字节,他也要在你的硬盘上占用几个扇区。(而对于硬盘,它的最小的读写单位是扇区,一个扇区的大小一般是512个字节,就算你只有一个字节的内容要写扇区,他也要占用512个字节。很少有人去绕过操作系统自己来读写硬盘)
注意:所有磁盘上的文件都是可以用QB的文件语句打开操作的.这与文件的类型格式没有关系!
路径:
对于一个编程学习的网友来说,文件中比较重要的就是路径的概念了,WINDOWS以目录树的形式管理磁盘,这里的目录就是文件夹。他是一层一层的,构成一个树的形式。在一个盘符中最底层的目录为根目录,根目录下的目录都称为它的子目录,根目录用"\"表示,一个目录的上一层目录用".."表示。我们可以通过路径来查找某一个文件或目录,路径就如同地址一样,可以使用户方便、准确地进行查找。比如"C:\Windows\Command\deltree.exe"就是一个文件的路径。
相对路径与绝对路径:
如果从根目录开始定位一个文件,则其路径称为该文件的绝对路径,如上述的例子。
如果我们使用计算机的话,一定使用磁盘或光盘之类的外部存储器,我们必然处于其中的某个位置,
比如C:\Dos,我们称之为当前目录,在某个盘中,我们只能也必然处于某一(不是二、三)个位置,所以,我们的某个盘的当前目录只有一个,但是我们可以改变当前目录。
从当前目录算起来定位一个文件,所经过的路径称相对路径。比如,..\ABC\Readme.txt,其中,
..\ABC\ 就称为当前目录为 C:\Dos 时文件Readme.txt所在的相对路径,同样,Tools\Hdcopy.exe 也是相对路径表示方法,只是Tools是当前目录 C:\Dos 下的子目录。这里的..表示上级目录。
文件:
在同一个目录下,不允许存在相同名称的文件或目录
电脑中的数据主要都是以文件形式存储的,文件是相关数据的集合,若干数据聚集在一起组成一个文件。每个文件都有文件名,文件名由主文件名和扩展名两部分组成,中间有小圆点隔开。扩展名的类型一般是约定俗成的,比如test.bas,他的扩展名是.BAS,这个是BASIC的文件,如:TEST.TXT,他的扩展名是TXT,这个就是文本文件,当然,你也可以把扩展名随便改,这个都是无所谓的,DOS6.22及其以前版本最多仅支持8个字符的主文件名和3个字符的后缀名,而从Windows 95的DOS7.0开始就可支持128个字符的主文件名和后缀名。字母、汉字、数字和一些特殊符号如"!、@、#"都可以作为文件名,但不能有"/、\、|、:、?"等符号。
由于QB是DOS时代的产物,所以不支持长文件名,在QBASIC中 打开一个文件,文件名不能大于8+3个字符,如果要用长文件名,也不市没有办法的,对于一个编程的人来说,不要轻易的说这个那个语言有局限,做不到,而是要说我一定能做到,事实上也能做到。虽然qb语言本身不提供长文件名,但是可以调用扩展中断来实现长文件名读写、显示.
在QBASIC中你在用OPEN语句打开文件往里面写东西的时候,到底是怎么写进去的呢,(操作系统完成写文件过程也一样),其实都是调用的操作系统提供的文件服务功能,QBASIC的写文件语句调用了INT21中断中的文件服务功能,在操作系统接受写文件功能以后,文件服务功能模块就在FAT(文件分配表)中找这个文件所在的簇,找到以后就转换成绝对的扇区号,然后调用BIOS中的INT13中断(这个中断是专门用于磁盘服务的,一般由主板上的BIOS芯片中的程序提供),BIOS会把中断请求翻译转换到相应IO比如1F0...1F7这样的端口,硬盘上也有BIOS芯片,它接受到请求后会根据这些数据转换成具体的内容,最后才驱动磁头完成一次写操作,这个过程说起来很长,电脑实现起来是非常快的!
知道这个过程有什么好处呢,举个简单例子,现在的网吧很多都用还原精灵保护,按照上面的原理来分析,他可以从这样的环节来控制写硬盘,一替换INT21中断的文件 二替换INT13的写硬盘,三监视端口,最后就是对硬盘上BIOS的控制了!通过分析还原精灵是替换了INT13中断(市场上的还原卡也类似),所以我们可以饶过它,直接用端口来写!
用QB可以打开硬盘上所有格式的文件(不含NT系统)也就是你可以对一个电脑里的硬盘上任何的文件进行操作,如果你改写了WINDOWS关键的文件,例如在WIN98中你 用
OPEN "C:\WINDOWS\WIN.COM" FOR BINARY AS #1
FOR I=1 TO LOF(1)
PUT 1,I,0
NEXT
END
系统就无法正常启动运行了,所以学习好文件的使用是非常非常的重要,希望大家重视,而且这个东西也不复杂,很容易就能学明白!
在QB中,操作文件是极其方便的 ,比C语言要方便很多,而且在vb中的文件语句也是一样的用法。
有关文件语句的操作请大家多加练习!
“功夫在诗外”,学编程或者是学计算机的学生,不可避免的要接触或者是要求了解编程以外的这些知识!
如果不了解系统基本相关原理,也很难写出高质量的程序!
除了系统的基本原理,程序调试技巧也非常重要,写一个程序要10分钟,也许调试它要50分钟或者更多。
在这里我只能找到系统相关的一小部分,更多的只有靠自己去找,我想开阔一下大家的思路!
3、系统篇 2、键盘篇 1、文件篇
当一种编程语言运用熟练以后,就不可避免的接触一些计算机原理和一些相关知识,这样就需要找找相关的计算机书籍来看了,通过学习以后能对自己的编程又有提高,反过来又通过编程促进了对系统的了解,我自己就买过一些计算机原理和汇编语言方面的书籍,虽然我并不学习这些语言.
1 文件系统
文件的操作是电脑最频繁 最常用 的内容 对于一个学习编程的网友来说,对文件的使用是很必要而且很基本的操作,所以我们应该很详细的了解这方面的知识。
我们大家的电脑上99%的用的都是WIN的操作系统,所以我们首先来看看WINDOWS对本地硬盘上的文件管理。
WINDOWS的文件系统有两种格式FAT格式和NTFS格式 ,这两个系统上对文件编程并没有什么很特别的地方,都可以用OPEN 。。。来打开一个文件。
WINDOWS文件系统的最小读写单位是簇,一个簇包含多个扇区(一个扇区有512个字节),也就是一个文件就算你只有1一个字节,他也要在你的硬盘上占用几个扇区。(而对于硬盘,它的最小的读写单位是扇区,一个扇区的大小一般是512个字节,就算你只有一个字节的内容要写扇区,他也要占用512个字节。很少有人去绕过操作系统自己来读写硬盘)
注意:所有磁盘上的文件都是可以用QB的文件语句打开操作的.这与文件的类型格式没有关系!
路径:
对于一个编程学习的网友来说,文件中比较重要的就是路径的概念了,WINDOWS以目录树的形式管理磁盘,这里的目录就是文件夹。他是一层一层的,构成一个树的形式。在一个盘符中最底层的目录为根目录,根目录下的目录都称为它的子目录,根目录用"\"表示,一个目录的上一层目录用".."表示。我们可以通过路径来查找某一个文件或目录,路径就如同地址一样,可以使用户方便、准确地进行查找。比如"C:\Windows\Command\deltree.exe"就是一个文件的路径。
相对路径与绝对路径:
如果从根目录开始定位一个文件,则其路径称为该文件的绝对路径,如上述的例子。
如果我们使用计算机的话,一定使用磁盘或光盘之类的外部存储器,我们必然处于其中的某个位置,
比如C:\Dos,我们称之为当前目录,在某个盘中,我们只能也必然处于某一(不是二、三)个位置,所以,我们的某个盘的当前目录只有一个,但是我们可以改变当前目录。
从当前目录算起来定位一个文件,所经过的路径称相对路径。比如,..\ABC\Readme.txt,其中,
..\ABC\ 就称为当前目录为 C:\Dos 时文件Readme.txt所在的相对路径,同样,Tools\Hdcopy.exe 也是相对路径表示方法,只是Tools是当前目录 C:\Dos 下的子目录。这里的..表示上级目录。
文件:
在同一个目录下,不允许存在相同名称的文件或目录
电脑中的数据主要都是以文件形式存储的,文件是相关数据的集合,若干数据聚集在一起组成一个文件。每个文件都有文件名,文件名由主文件名和扩展名两部分组成,中间有小圆点隔开。扩展名的类型一般是约定俗成的,比如test.bas,他的扩展名是.BAS,这个是BASIC的文件,如:TEST.TXT,他的扩展名是TXT,这个就是文本文件,当然,你也可以把扩展名随便改,这个都是无所谓的,DOS6.22及其以前版本最多仅支持8个字符的主文件名和3个字符的后缀名,而从Windows 95的DOS7.0开始就可支持128个字符的主文件名和后缀名。字母、汉字、数字和一些特殊符号如"!、@、#"都可以作为文件名,但不能有"/、\、|、:、?"等符号。
由于QB是DOS时代的产物,所以不支持长文件名,在QBASIC中 打开一个文件,文件名不能大于8+3个字符,如果要用长文件名,也不市没有办法的,对于一个编程的人来说,不要轻易的说这个那个语言有局限,做不到,而是要说我一定能做到,事实上也能做到。虽然qb语言本身不提供长文件名,但是可以调用扩展中断来实现长文件名读写、显示.
在QBASIC中你在用OPEN语句打开文件往里面写东西的时候,到底是怎么写进去的呢,(操作系统完成写文件过程也一样),其实都是调用的操作系统提供的文件服务功能,QBASIC的写文件语句调用了INT21中断中的文件服务功能,在操作系统接受写文件功能以后,文件服务功能模块就在FAT(文件分配表)中找这个文件所在的簇,找到以后就转换成绝对的扇区号,然后调用BIOS中的INT13中断(这个中断是专门用于磁盘服务的,一般由主板上的BIOS芯片中的程序提供),BIOS会把中断请求翻译转换到相应IO比如1F0...1F7这样的端口,硬盘上也有BIOS芯片,它接受到请求后会根据这些数据转换成具体的内容,最后才驱动磁头完成一次写操作,这个过程说起来很长,电脑实现起来是非常快的!
知道这个过程有什么好处呢,举个简单例子,现在的网吧很多都用还原精灵保护,按照上面的原理来分析,他可以从这样的环节来控制写硬盘,一替换INT21中断的文件 二替换INT13的写硬盘,三监视端口,最后就是对硬盘上BIOS的控制了!通过分析还原精灵是替换了INT13中断(市场上的还原卡也类似),所以我们可以饶过它,直接用端口来写!
用QB可以打开硬盘上所有格式的文件(不含NT系统)也就是你可以对一个电脑里的硬盘上任何的文件进行操作,如果你改写了WINDOWS关键的文件,例如在WIN98中你 用
OPEN "C:\WINDOWS\WIN.COM" FOR BINARY AS #1
FOR I=1 TO LOF(1)
PUT 1,I,0
NEXT
END
系统就无法正常启动运行了,所以学习好文件的使用是非常非常的重要,希望大家重视,而且这个东西也不复杂,很容易就能学明白!
在QB中,操作文件是极其方便的 ,比C语言要方便很多,而且在vb中的文件语句也是一样的用法。
有关文件语句的操作请大家多加练习!