VB_Open_文件操作类函数功能详解

VB_Open_文件操作类函数功能详解
VB_Open_文件操作类函数功能详解

VB Open 文件操作类函数功能详解:

1、Open 文件名[For方式] [Access存取类型] [锁定] AS [#]文件号[Len=记录长度]

功能:

为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式

说明:

(1)打开方式:

指定文件的输入输出方式,可选,默认是Random。可以是以下值:

a、Output:指定顺序输出方式,将覆盖原有内容。

b、Input:指定顺序输入方式。

c、Append:指定顺序输出方式,在文件未尾追加内容。

d、Random:指定随机存取方式,也是默认方式,在Random方式时,如果没有Access子句,则在执行Open语句时,VB将按下列顺序打开文件:读/写、只读、只写。

e、Binary:指定二进制文件。在这种方式下,可以用Get和Put语句对文件中任何字节位置的信息进行读写。在Binary方式中,如果没有Access子句,则打开文件的类型与Random方式相同。

(2)存取类型:

放在关键字Access之后,用来指定访问文件的类型。可以是下列类型之一:

a、Read:打开只读文件。

b、Write:打开只写文件。

c、Read Write:打开读写文件。这种类型只对随机文件、二进制文件及用Appe nd方式打开的文件有效。

(3)锁定类型:

该子句只在多用户或多进和环境中使用,用来限制其他用户或其他进程对打开进行读写操作。锁定类型包括:

a、默认:如不指定锁定类型,则本进程可以多次打开文件进行读写;在文件打开期间,其他进程不能对该文件执行读写操作。

b、Lock Shared:任何机器上的任何进程都可以对该文件进行读写操作。

c、Lock Read:不允许其他进程读该文件。只在没有其他Read存取类型的进程访问该文件时,才允许这种锁定。

d、Lock Write:不允许其他进程写这个文件。只在没有其他Write存取类型的进程访问该文件时,才允许这种锁定。

e、Lock Read Write:不允许其他进程读写这个文件。

如果不使用lock子句,则默认为Lock Read write。

(4)文件号:

由用户自行指定一个由1~511之间的整数,只要该文件号未被使用就合法;打开文件后,可以用该文件号进行读写等操作。

(5)记录长度:

是一个整型表达式。当选择该参量时,为随机存取文件设置记录长度。对于用随机访问方式打开的文件,该值是记录长度;对于顺序文件,该值是缓冲字符数。”记录长度”不能超过32767字节。对于二进制文件,将忽略Len子句。

举例:

Open "price.dat" for Output as #1

Open "C:\abc.dat" for radom as #1 len=256

2、Close [#文件号][,#文件号]……:关闭文件。

3、Seek #文件号,位置:文件指针跳到指定位置,以字节为单位。取值1 ~pow(2,31)-1。

4、Seek (文件号):返回当前文件指针的位置。

5、FreeFile():取得一个未使用的文件号。

6、Loc(文件号):返回指定文件的当前读写位置。

7、LOF(文件号):返回文件长度。

8、EOF(文件号):用来测试文件是否结束,结束返回true。

9、Print #文件号,变量1,变量2,…变量n:按顺序将各变量的值写入顺序文件,如果是print #文件号,则写入空行。

10、Write #文件号,表达式表…:作用同Print。

11、Input #文件号,变量表….:读顺序文件,进行与Print相反的操作。

12、Line Input #文件号,字符串变量:从顺序文件中读入一行。

13、Input$(n,#文件号):从顺序文件读出n个字符的字符串。

14、Put #文件号,[记录号],变量:把除对象变量和数组变量外的任何变量(包括号含有单个数组元素的下标变量)的内容写入随机文件。例如:Put #2,,filebuff。

15、Get #文件号,[记录号],变量:读随机文件,执行与put相反的操作。

16、Get|put #文件号,[位置],变量:读写二制文件,位置是指下一次读写操作的位置。

17、Kill 文件名:删除文件。

18、FileCopy 源文件名,目标文件名:复制文件。

19、Name原文件名as 新文件名:重命令文件。

VB常用字符串操作函数解读

VB常用字符串操作函数2009/11/25 18:321. ASC(X,Chr(X:转换字符字符码[格式]: P=Asc(X 返回字符串X的第一个字符的字符码 P=Chr(X 返回字符码等于X的字符 [范例]:(1P=Chr(65 ‘ 输出字符A,因为A的ASCII码等于65 (2P=Asc(“A” ‘ 输出65 2. Len(X:计算字符串X的长度 [格式]: P=Len(X [说明]:空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算 一个字符。 [范例]: (1 令X=”” (空字符串 Len(X 输出结果为0 (2 令X=”abcd” Len(X 输出结果为4 (3 令X=”VB教程” Len(X 输出结果为4 3. Mid(X函数:读取字符串X中间的字符 [格式]: P=Mid(X,n 由X的第n个字符读起,读取后面的所有字符。 P=Mid(X,n,m 由X的第n个字符读起,读取后面的m个字符。 [范例]: (1 X=”abcdefg” P=Mid(X,5 结果为:P=”efg” (2 X=”abcdefg” P=Mid(X,2,4 结果为 P=”bcde” 4. R eplace: 将字符串中的某些特定字符串替换为其他字符串 [格式]: P=Replace(X,S,R [说明]:将字符串X中的字符串S替换为字符串R,然后返回。[范例]:X=”VB is very good” P=Replace(X,good,nice 输出结果为:P=”VB is very nice” 5. StrReverse:反转字符串 [格式]: P=StrReverse(X [说明]:返回X参数反转后的字符串 [范例]:(1)X=”abc” P=StrReverse(X 输出结果:P=”cba” 6. Ucase(X,Lcase(X:转换英文字母的大小写 [格式]:P=Lcase(X ‘ 将X字符串中的大写字母转换成小写P=Ucase(X ‘ 将X字符串中的小写字母转换成大写 [说明]:除了英文字母外,其他字符或中文字都不会受到影响。 [范例]:(1)令X=”VB and VC” 则Lcase(X的结果为”vb and vc”,Ucase(X的结果为”VB AND VC” 7. InStr函数:寻找字符串 [格式]: P=InStr(X,Y 从X第一个字符起找出Y出现的位置 P=InStr(n,X,Y 从X第n个字符起找出Y出现的位置 [说明]:(1)若在X中找到Y,则返回值是Y第一个字符出现在X中的位置。(2) InStr(X,Y相当于 InStr(1,X,Y。(3)若字符串长度,或X为空字符串,或在X中找不到Y,则都 返回0。(4)若Y为空字符串,则返回0。 ---------------------------------------------------------------------------------------------- mid(字符串,从第几个开始,长度 ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("小欣无敌",1,3 则返回 "小欣无" instr(从第几个开始,字符串1,字符串2 ByVal 从规定的位置开始查找,返回字符

C语言文件流操作函数大全

clearerr(清除文件流的错误旗标) 相关函数feof 表头文件#include 定义函数void clearerr(FILE * stream); 函数说明clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数close,fflush,fopen,setbuf 表头文件#include 定义函数int fclose(FILE * stream); 函数说明fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。 返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。错误代码EBADF表示参数stream非已打开的文件。 范例请参考fopen()。 fdopen(将文件描述词转为文件指针) 相关函数fopen,open,fclose 表头文件#include 定义函数FILE * fdopen(int fildes,const char * mode); 函数说明fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。 返回值转换成功时返回指向该流的文件指针。失败则返回NULL,并把错误代码存在errno 中。 范例 #include main() { FILE * fp =fdopen(0,”w+”); fprintf(fp,”%s\n”,”hello!”); fclose(fp); } 执行hello! feof(检查文件流是否读到了文件尾) 相关函数fopen,fgetc,fgets,fread 表头文件#include 定义函数int feof(FILE * stream);

STM32固件库的学习(重要,要常看)

1. stm32的编程中,在stdperiph_drive中添加的misc.c文件是干什么用的啊? 因为STM32 V3.5版本的库函数中没有原来版本中单独对于NVIC(中断向量嵌套)的外设驱动,把NVIC的外设驱动放在了misc.c中,实际上是代替原来的stm32f10x_nvic.c。 2. STM32F10XXX V 3.5标准外设库文件夹描述 标准外设库的第一部分是CMSIS 和STM32F10x_StdPeriph_Driver,CMSIS 是独立于供应商的Cortex-M处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。 STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。Project 文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。 3.文件功能说明

4.CMSIS文件夹结构

在实际开发过程中,根据应用程序的需要,可以采取2种方法使用标准外设库

(StdPeriph_Lib): (1)使用外设驱动:这时应用程序开发基于外设驱动的API(应用编程接口)。用户只需要配置文件”stm32f10x_conf.h”,并使用相应的文件”stm32f10x_ppp.h/.c”即可。 (2) 不使用外设驱动:这时应用程序开发基于外设的寄存器结构和位定义文件。 5. STM32F10XXX标准外设库的使用 标准外设库中包含了众多的变量定义和功能函数,如果不能了解他们的命名规范和使用规律将会给编程带来很大的麻烦,本节将主要叙述标准外设库中的相关规范,通过这些规范的学习可以更加灵活的使用固件库,同时也将极大增强程序的规范性和易读性,同时标准外设库中的这种规范也值得我们在进行其他相关的开发时使用和借鉴。 a.缩写定义 标准外设库中的主要外设均采用了缩写的形式,通过这些缩写可以很容易的辨认对应的外设。

VB常用函数

VB常用函数: 1.数值型函数: int(num): 取整int(99.8)=99; int(-99.2)=-100 fix(num):取整fix(99.8)=99; fix(-99.2)=-99 round(num,n): 四舍五入取小数位round(3.14159,3)=3.142 中点数值四舍五入为近偶取整round(3.25,1)=3.3 sqr(num) 取根号 2.字符串函数: len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串 left(str,nlen):从左边起截取nlen长度子字符串 right(str,nlen):从右边起截取nlen长度子字符串 trim(str):去除字符串两端空格 replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串 注:默认值:起始字符1;替代次数不限;比较方法区

分大小写(0) InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrrev() split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选CHR(num)通过ASCII值获取一个字符 chr(32) 空格 chr(13) 回车 Ucase(str)所有字符转成大写 Lcase(str)所有字符转成小写 3.数据类型转换函数: Cint(str):转换正数True -1;False 0;日期距离1899/12/31天数;时间上午段0;下午段1; Cstr(str):日期输出格式yyyy/mm/dd;时间输出格式Am/Pm hh:mm:ss Csng(str):转换为单精度数值 Cdbl(str):转换为双精度数值 Cdate() 4.时间函数: date:取系统当前日期

nodejs文件操作模块FS(File System)常用函数简明总结

nodejs文件操作模块FS(File System)常用函数简明总结 件系统操作相关的函数挺多的。首先可以分为两大类。 一类是异步+回调的。一类是同步的。 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1.首先是一类最常规的读写函数,函数名称和形式,应该是起源于C语言的。 复制代码代码如下: fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd)); fs.read(文件句柄fd,被写入的buffer,offset,length,position,回调函数(err,bytesRead,buffer)); fs.write(文件句柄fd,被读取的buffer,offset,length,position,回调函数(err,bytesWritten,buffer)); fs.close(文件句柄,回调函数) fs.truncate(文件句柄,截断长度,回调函数); fs.fsync(文件句柄,回调函数); 2.直接对文件进行读写的,用起来比较方便。 复制代码代码如下: fs.readFile(文件名,编码,回调函数(err,data)); fs.writeFile(文件名,数据,编码,回调函数(err)); fs.appendFile(文件名,数据,编码,回调函数(err)); 3.其它常用文件操作 复制代码代码如下: 判断文件是否存在 fs.exists(文件路径,callback(是否存在)); 重命名 fs.rename(旧文件名,新文件名,回调函数); 文件所有者变更 fs.chown(文件名,uid,gid,回调函数);/fs.fchown(文件句柄fd,uid,gid,回调函数);/fs.lchown(链接路径,uid,gid,回调函数); 文件权限变更 fs.chmod(文件名,mode,回调函数);/fs.fchmod(文件句柄,mode,回调函数);/fs.lchmod(链接路径,mode,回调函数); 文件信息 fs.stat(文件路径,回调函数(err.fs.Stats对象));/fs.fstat(文件句柄fd,回调函数(err.fs.Stats对象));/fs.lstat(链接路径,回调函数(err.fs.Stats对象)); 文件时间 fs.utimes(文件路径,访问时间,新建时间,回调函数);/fs.futimes(文件句柄,访问时间,新建时间,回调函数); 监视文件 fs.watchFile(文件名,[options],listener_callback(当前文件的stats,改变前的stats)); fs.unwatchFile(文件名); 4.目录操作 复制代码代码如下: fs.mkdir(路径,权限mode/777,回调函数); fs.rmdir(路径,回调函数);

stm32入门C语言详解

阅读flash:芯片内部存储器flash操作函数我的理解——对芯片内部flash进行操作的函数,包括读取,状态,擦除,写入等等,可以允许程序去操作flash上的数据。 基础应用1,FLASH时序延迟几个周期,等待总线同步操作。推荐按照单片机系统运行频率,0—24MHz时,取Latency=0;24—48MHz时,取Latency=1;48~72MHz时,取Latency=2。所有程序中必须的 用法:FLASH_SetLatency(FLASH_Latency_2); 位置:RCC初始化子函数里面,时钟起振之后。 基础应用2,开启FLASH预读缓冲功能,加速FLASH的读取。所有程序中必须的 用法:FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); 位置:RCC初始化子函数里面,时钟起振之后。 3、阅读lib:调试所有外设初始化的函数。 我的理解——不理解,也不需要理解。只要知道所有外设在调试的时候,EWRAM需要从这个函数里面获得调试所需信息的地址或者指针之类的信息。 基础应用1,只有一个函数debug。所有程序中必须的。 用法:#ifdef DEBUG debug(); #endif 位置:main函数开头,声明变量之后。 4、阅读nvic:系统中断管理。 我的理解——管理系统内部的中断,负责打开和关闭中断。 基础应用1,中断的初始化函数,包括设置中断向量表位置,和开启所需的中断两部分。所有程序中必须的。 用法:void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; //中断管理恢复默认参数 #ifdef VECT_TAB_RAM //如果C/C++ Compiler\Preprocessor\Defined symbols中的定义了 VECT_TAB_RAM(见程序库更改内容的表格) NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //则在RAM调试 #else //如果没有定义VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);//则在Flash里调试 #endif //结束判断语句 //以下为中断的开启过程,不是所有程序必须的。 //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC优先级分组,方式。 //注:一共16个优先级,分为抢占式和响应式。两种优先级所占的数量由此代码确定, NVIC_PriorityGroup_x可以是0、1、2、3、4,分别代表抢占优先级有1、2、4、8、16个和响应优先级有16、8、4、2、1个。规定两种优先级的数量后,所有的中断级别必须在其中选择,抢占级别高的会打断其他中断优先执行,而响应级别高的会在其他中断执行完优先执行。 //NVIC_InitStructure.NVIC_IRQChannel = 中断通道名; //开中断,中断名称见函数库 //NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级 //NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //响应优先级 //NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //启动此通道的中断 //NVIC_Init(&NVIC_InitStructure); 中断初始化

vb字符串处理函数

vb字符串处理函数 Posted on 2012-04-09 14:52 ╰★张志峰★╮阅读(1996) 评论(0) 编辑收藏 vb字符串处理函数 LEN字串長度函數:計算字串的長度。函數運算式結果 len("abcd") 4 len("中文字") 3 len(abc中文) 5 MID取部份字串函數:依開始位置擷取固定長度字串。函數運算式結果 mid("vbscript",3,3) scr mid("vbscript",3) script mid("vbscript",1,2) vb LEFT字串開頭取部份字串函數:將某一字串由開頭擷取固定長度。函數運算式結果left("vbscript",2) vb left("vbscript",5) vbscr RIGHT字串結尾取部份字串函數:將某一字串由結尾擷取固定長度。函數運算式結果right("vbscript",2) pt right("vbscript",6) script LCASE轉大寫函數:將字串中的大寫字母變成小寫。函數運算式結果 lcase("VBScript") vbscript lcase("VBScript程式") vbscript程式 UCASE轉小寫函數:將字串中的小寫字母變成大寫。函數運算式結果 ucase("VBScript") VBSCRIPT ucase("VBScript程式") VBSCRIPT程式 TRIM刪除頭及尾空白字元函數:將字串開頭及結尾的空白字元刪除。 LTRIM刪除開頭空白函數:將字串開頭的空白字元刪除。 RTRIM刪除結尾空白函數:將字串結尾的空白字元刪除。函數運算式結果 trim(" VBScript ") VBScript ltrim(" VBScript ") VBScript rtrim(" VBScript ") VBScript REPLACE替代字串函數:將字串中的某字串用另一字串代替。函數運算式結果replace("VBScript","VB","JAVA") JAVAScript

C语言基础自学总结之十:文件操作

C语言基础自学总结之十:文件操作 要点: 1.文件操作,就是通过程序,操作文件 2.两个方面:读,写 一.fopen 打开文件 函数原型:FILE *fopen(char *filename, char *type);int fclose(FILE *fp); 头文件:#include 是否是标准函数:是 函数功能:函数fopen:打开一个流,即:打开一个文件。该函数有两个参数,filename是需要打开文件的文件名,type是打 开文件的方式。函数fclose:关闭一个流,即:关闭一个 文件,并释放文件缓冲区。fclose函数与fopen函数是相 对的两个函数。fclose函数的参数是指向文件的指针,应 用该函数用以在程序结束之前关闭文件,并释放文件缓冲 区。这样可以保证文件的数据不流失。 返回值:fopen:FILE类型,如果打开的文件存在,返回指向该文件的指针;如果打开的文件不存在,则在指定的目录下建立该 文件打开,并返回指向该文件的指针。fclose:整型,有错

返回非0,否则返回0。 例子1: #include int main(void) { FILE *FP=fopen("文件","打开方式");//返回值是file是一个 结构体,是一个结构体 的宏。 fclose(FP);//打开之后,用完了,就要关闭文件,fclose是跟 fopen一起使用的一个函数。 return 0; } 二. frend 读取 fread:从流中读取字符串函数 函数原型:int fread(void *buf, int size, int count, FILE *fp);头文件:#include 是否是标准函数:是 函数功能:从fp指向的文件中读取长度为size 的count个数据项,并将它输入到以buf为首地址的缓冲区中。此时,文件指针 fp会自动增加实际读入数据的字节数,即fp指向最后读入 字符的下一个字符位置。

stm32库函数解释

部分库函数简介 一、通用输入/输出(GPIO)--------------------------------------------------------------------------------------------3 二、外部中断/事件控制器(EXTI)-----------------------------------------------------------------------------------7 三、通用定时器(TIM)-------------------------------------------------------------------------------------------------9四:ADC寄存器------------------------------------------------------------------------25 五:备份寄存器(BKP)-------------------------------------------------------------------------------------------------33 六、DMA控制器(DMA)---------------------------------------------------------------37 七、复位和时钟设置(RCC)------------------------------------------------------------------------------------------41 八、嵌套向量中断控制器(NVIC)-----------------------------------------------------------------------------------49

VB专题:字符处理之字符替换

1. 字符串函数的使用 (1)Len(s): 应用:s=Text1.Text 求字符串s长度的表达式:①。 ②。 (2)Mid(s,i,n) 或 Mid(s,i): 应用: 2. 字符串连接: 应用: (1)顺序连接(表达式或赋值语句):。 (2)倒序连接(表达式或赋值语句):。 1.单个字符替换 任务描述:将字符串中的特定单个字符替换成另一个特定字符,如图所示:将text1中的”偶”(由Text2输入)替换成”我”(由Text3输入),将替换后的字符串由Text4输出。

Text1 Text2 Text3 Private Sub Command1_Click() Dim s As String, ss As String,c1 As String, c2 As String s = Text1.Text: c1 = Text2.Text: c2 = Text3.Text: ss = "" For i = 1 To Len(s) If ①Then‘取子串,判断是否需要替换 ss = ss + ②‘有替换的连接 Else ss = ss + ③‘无替换的连接 End If Next i Text4.Text = ss End Sub 思考并写出相应语句,然后完成上面的填空: (1)如何取子串? (2)如何判断?(是否需要替换) (3)如何连接字符串?替换 未替换 2.任意长度字符串替换 (1)(方法一)任务描述:将字符串中的特定字符串替换成另一个任意长度特定字符串,如图所示:将Text1中的”中学”(由Text2输入)替换成”middle school”(由Text3输入),将替换后的字符串由Text4输出。

VB字符串转换函数

VB中涉及到的数据进制之间的转换函数主要有如下几个: Hex 函数: 返回代表十六进制数值的String; Oct 函数: 返回代表一数值的八进制值的V ariant (String); Cint函数: 强制将一个表达式转换成-32,768 至32,767的整型; CLng函数: 强制将一个表达式转换成-2,147,483,648 至2,147,483,647的长整型; Cdec函数: 强制将一个表达式转换成Decimal 数据类型; CDbl函数: 强制将一个表达式转换成Double 数据类型; 以上这些函数是最基本的几个数据进制之间的转换函数,其中以前三个函数最常用,也最有用.从上面几个函数我们可以看到,VB中没有为我们提供专门的函数供我们将表达式或是数据转换成十进制和二进制,不过十进制的转换我们可以通过Cint函数轻松完成,而二进制的实现我们可以通过二进制和八进制,十六进制的关系轻松转换. 下面几个例子为Hex函数和Oct函数以及Cint函数的实例: (1). A= hex(5) 返回5; (2). B=hex(10) 返回A (3). C=hex(23) 返回17 (4). D=oct(5) 返回5 (5). E=oct(10) 返回12 (6). F=oct(23) 返回27 (7). G=Cint(&H17) 返回23 (8) . H=Cint(&O12) 返回10 以上这些函数的应用比较简单,就不多说了,值得一提的是Hex函数和Oct函数返回的都是字符串,如果是想将十六进制或是八进制的字符串变量转换成十进制,可以按如下方法进行: C=”17” 17为十六进制数值的String C=”&H” & C Ic=Cint(C) 返回23 2. 字符串和数字转换函数 VB中的字符串函数比较多,也比较方便,就不一一介绍了.本文主要对字符串相关的转换函数做一些小结.字符串转换的函数主要有: Str()和V al()用于字符串和数字的相互转换; Chr()和Asc()用于字符串和AscII码的相互转换; Chrw()和Ascw()用于Unicode码和中文的相互转换; Format()函数用途十分广泛的一个函数,功能十分强大. 在这些函数中前两对和Format()函数是我们经常用到的,这里只给出前两对的几个简

VB_Open_文件操作类函数功能详解

VB Open 文件操作类函数功能详解: 1、Open 文件名[For方式] [Access存取类型] [锁定] AS [#]文件号[Len=记录长度] 功能: 为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式 说明: (1)打开方式: 指定文件的输入输出方式,可选,默认是Random。可以是以下值: a、Output:指定顺序输出方式,将覆盖原有内容。 b、Input:指定顺序输入方式。 c、Append:指定顺序输出方式,在文件未尾追加内容。 d、Random:指定随机存取方式,也是默认方式,在Random方式时,如果没有Access子句,则在执行Open语句时,VB将按下列顺序打开文件:读/写、只读、只写。 e、Binary:指定二进制文件。在这种方式下,可以用Get和Put语句对文件中任何字节位置的信息进行读写。在Binary方式中,如果没有Access子句,则打开文件的类型与Random方式相同。 (2)存取类型: 放在关键字Access之后,用来指定访问文件的类型。可以是下列类型之一: a、Read:打开只读文件。 b、Write:打开只写文件。 c、Read Write:打开读写文件。这种类型只对随机文件、二进制文件及用Appe nd方式打开的文件有效。 (3)锁定类型: 该子句只在多用户或多进和环境中使用,用来限制其他用户或其他进程对打开进行读写操作。锁定类型包括: a、默认:如不指定锁定类型,则本进程可以多次打开文件进行读写;在文件打开期间,其他进程不能对该文件执行读写操作。 b、Lock Shared:任何机器上的任何进程都可以对该文件进行读写操作。 c、Lock Read:不允许其他进程读该文件。只在没有其他Read存取类型的进程访问该文件时,才允许这种锁定。 d、Lock Write:不允许其他进程写这个文件。只在没有其他Write存取类型的进程访问该文件时,才允许这种锁定。 e、Lock Read Write:不允许其他进程读写这个文件。 如果不使用lock子句,则默认为Lock Read write。 (4)文件号: 由用户自行指定一个由1~511之间的整数,只要该文件号未被使用就合法;打开文件后,可以用该文件号进行读写等操作。

STM32固件库详解42324

STM32固件库详解 最近考试较多,教材编写暂停了一下,之前写了很多,只是每一章都感觉不是特别完整,最近把其中的部分内容贴出来一下,欢迎指正。本文内容基于我对固件库的理解,按照便于理解的顺序进行整理介绍,部分参考了固件库的说明,但是也基本上重新表述并按照我理解的顺序进行重新编写。我的目的很简单,很多人写教程只是告诉你怎么做,不会告诉你为什么这么做,我就尽量吧前因后果都说清楚,这是我的出发点,水平所限,难免有很大的局限性,具体不足欢迎指正。基于标准外设库的软件开发 STM32标准外设库概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。

ST公司2007年10月发布了版本的固件库,MDK 之前的版本均支持该库。2008年6月发布了版的固件库,从2008年9月推出的MDK 版本至今均使用版本的固件库。以后的版本相对之前的版本改动较大,本书使用目前较新的版本。 使用标准外设库开发的优势 简单的说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。标准外设库覆盖了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC 等等的所有标准外设。对应的C源代码只是用了最基本的C编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。 STM32F10XXX标准外设库结构与文件描述 1. 标准外设库的文件结构 在上一小节中已经介绍了使用标准外设库的开发的优势,因此对标准外设库的熟悉程度直接影响到程序的编写,下面让我们来认识一下STM32F10XXX的标准外设库。STM32F10XXX的标准外设库经历众多的更新目前已经更新到最新的版本,开发环境中自带的标准外设库为版本,本书中以比较稳定而且较新的版本为基础介绍标准外设库的结构。

(完整版)vb_字符串处理函数大全

mid(字符串,从第几个开始,长度)ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如mid("坦然面对",1,3) 则返回"坦然面" instr(从第几个开始,字符串1,字符串2)ByVal 从规定的位置开始查找,返回字符串2在字符串1中的位置 例如instr(1,"坦然面对","坦") 则返回1,instr(2,"坦然面对","坦"),则返回0 。0 表示未找到 InStrRev(字符串1,字符串2,从第几个开始) ByVal 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。 例如instrRev("坦然面对","坦",2) 则返回2 ; instrRev("坦然面对","然",1) 则返回0 ,因为它从"坦然面对"的第1个字开始往前查找,所以找不到。0 表示未找到 left(字符串,长度) ByVal 从[字符串]的左边开始返回[长度]个字符 例如Left("坦然面对",3) 则返回"坦然面" right(字符串,长度) ByVal 从[字符串]的右边开始返回[长度]个字符 例如Right("坦然面对",3) 则返回"然面对" ucase(字符串) ByVal 返回[字符串]的大写形式,只对英文字符有效 例如ucase("tanRANmiAnDui") 则返回"TANRANMIANDUI" lcase(字符串) ByVal 返回[字符串]的小写形式,只对英文字符有效 例如lcase("tanRANmiAnDui") 则返回"tanranmiandui" asc(字符) Byval返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程 例如asc("坦") 则返回-13127; asc("坦然面对") 也返回-13127 chr(ASCii编码) Byval 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程 例如chr(-13127) 则返回"坦" ;chr(asc("坦")) 则返回"坦"(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本) trim(字符串) Byval 返回去掉了前、后之后的[字符串] 例如trim("坦然面对") 则返回"坦然面对" ,中间的空格不受任何影响 string(个数,字符) Byval 返回[个数]个[字符] 例如string(3,"坦") 则返回"坦坦坦" , 而string(3,"坦然面对") 也返回"坦坦坦",只有首字符才有效 space(个数) Byval 返回[个数]个空格 例如space(5) 则返回""

献给新手:解析STM32的库函数

意法半导体在推出STM32微控制器之初,也同时提供了一套完整细致的固件开发包,里面包含了在STM32开发过程中所涉及到的所有底层操作。通过在程序开发中引入这样的固件开发包,可以使开发人员从复杂冗余的底层寄存器操作中解放出来,将精力专注应用程序的开发上,这便是ST推出这样一个开发包的初衷。 但这对于许多从51/AVR这类单片机的开发转到STM32平台的开发人员来说,势必有一个不适应的过程。因为程序开发不再是从寄存器层次起始,而要首先去熟悉STM32所提供的固件库。那是否一定要使用固件库呢?当然不是。但STM32微控制器的寄存器规模可不是常见的8位单片机可以比拟,若自己细细琢磨各个寄存器的意义,必然会消耗相当的时间,并且对于程序后续的维护,升级来说也会增加资源的消耗。对于当前“时间就是金钱”的行业竞争环境,无疑使用库函数进行STM32的产品开发是更好的选择。本文将通过一个简单的例子对STM32的库函数做一个简单的剖析。 以最常用的GPIO设备的初始化函数为例,如下程序段一: GPIO_InitTypeDef GPIO_InitStructure; 1 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; 2 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 3 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 4 GPIO_Init(GPIOA , &GPIO_InitStructure 5 这是一个在STM32的程序开发中经常使用到的GPIO初始化程序段,其功能是将GPIOA.4口初始化为推挽输出状态,并最大翻转速率为50MHz。下面逐一分解: 首先是1,该语句显然定义了一个GPIO_InitTypeDef类型的变量,名为GPIO_InitStructure,则找出GPIO_InitTypeDef的原型位于“stm32f10x_gpio.h” 文件,原型如下: typedef struct { u16 GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; }GPIO_InitTypeDef; 由此可知GPIO_InitTypeDef是一个结构体类型同义字,其功能是定义一个结构体,该结构体有三个成员分别是u16类型的GPIO_Pin、 GPIOSpeed_TypeDef 类型的GPIO_Speed和GPIOMode_TypeDef 类型的 GPIO_Mode。继续探查GPIOSpeed_TypeDef和GPIOMode_TypeDef类型,在“stm32f10x_gpio.h”文件中找到对GPIOSpeed_TypeDef的定义: typedef enum { GPIO_Speed_10MHz = 1,

文件操作函数

var file_name:string; file_name:='c:\luther.gliethttp.txt'; FileWrite(com.log_fd, PChar(file_name)^, length(file_name)); 文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道。文件的本质是一个数据流,所有的文件实际上是一串二进制序列。 文件管理包括:1、文件操作。2、目录操作。3、驱动器操作。三部分。 1、常见文件操作函数和过程。 1.1、AssignFile过程 作用:将一个外部文件的文件名与一个File类型的变量关联,并对变量进行初始化。 原型:procedure AssignFile(var F; FileName: String); F:一个File类型的变量,可以是任何数据类型。 FileName:外部文件的文件名。 1.2、FileExists函数 作用:用于测试指定文件名的文件是否存在。 原型:function FileExists(const FileName: String): Boolean; FileName:文件名。字符串类型。 注意:如果文件存在,返回True;否则,返回False。 1.3、Append过程 作用:为在一个已经存在的文件末尾添加文本做好准备工作。文件是只写方式打开的。 原型:procedure Append(var F: Text); F: 一个TextFile类型变量。 注意:这是一个对文本类型文件操作的过程。其中变量F必须和外部文件关联。如果F没有与外部文件关联,将抛出异常。如果F已经处于打开状态,则过程会关闭F并重新打开。文件指针位置将被设置在文件末尾。 1.4、Reset过程 作用:对于文本文件,Reset过程将以只读方式打开文件。对于类型文件和无类型文件,Reset 过程将以可读写方式打开文件。打开已存在文件,打开不存在文件用Rewrite 原型:procedure Reset(var F [: File; RecSize: Word ] ); F:File类型变量,可以是任何文件类型。 RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果参数RecSize被省略了,则默认的记录大小为128字节。 注意:当该过程打开文件时,如果文件不存在则产生异常。如果文件已经打开了,则先关闭文件,然后重新打开,并将文件指针放到文件开头处。默认的文件模式(FileMode)为2,即可读写模式。如果文件模式在调用Reset过程前都还未改变,则尝试打开一个只读文件会失败。当调用Reset过程后,如果文件为空,则Eof函数返回True,否则返回False。 1.5、Rewrite过程 作用:对于一个已存在的文件,此操作将使文件被覆盖。对于一个不存在的文件,将创建并打开文件。对于一个已打开的文件,则关闭文件,并重新创建一个新的文件(覆盖原有的)。文件指针也被设置到空文件的开头处。 原型:procedure Rewrite(var F: File [; Recsize: Word ] ); F:File类型变量,可以是任何文件类型。 RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果

VB中StrConv函数用法

VB中StrConv(Text1.Text, vbFromUnicode)是什么意思啊?请高手指点,谢谢! 2012-07-14 13:42小恨有疆|分类:VB |浏览6443次 分享到: 举报| 2012-07-14 13:50提问者采纳 返回按指定类型转换的Variant (String)。 语法 StrConv(string, conversion, LCID) StrConv 函数的语法有下面的命名参数: 部分说明 string 必要参数。要转换的字符串表达式。 conversion 必要参数。Integer。其值的和决定转换的类型。 LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID 为缺省值。) 设置值 conversion 参数的设置值为: 常数值说明 vbUpperCase 1 将字符串文字转成大写。 vbLowerCase 2 将字符串文字转成小写。 vbProperCase 3 将字符串中每个字的开头字母转成大写。 vbWide* 4* 将字符串中单字节字符转成双字节字符。 vbNarrow* 8* 将字符串中双字节字符转成单字节字符。vbKatakana** 16** 将字符串中平假名字符转成片假名字符。vbHiragana** 32** 将字符串中片假名字符转成平假名字符。vbUnicode 64 根据系统的缺省码页将字符串转成Unicode。vbFromUnicode 128 将字符串由Unicode 转成系统的缺省码页。 *应用到远东国别。**仅应用到日本。 注意这些常数是由VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如vbUpperCase + vbWide,互斥的常数不能组合,例如vbUnicode + vbFromUnicode。当在不适用的国别使用常数vbWide、vb Narrow、vbKatakana,和vbHiragana 时,就会导致运行时错误。 下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符(Chr$(9)),换行(Chr$(10)),垂直制表符(Chr$(11)),换页(Chr$(12)) ,回车(Chr$(13)),空白(SBCS) (Chr$(32))。在DBCS中,空白的实际值会随国家/地区而不同。说明 在把ANSI 格式的Byte 数组转换为字符串时,您应该使用StrConv 函数。当

stm32启动文件详解

STM32启动文件详解 一、启动文件的作用 1.初始化堆栈指针SP; 2.初始化程序计数器指针PC; 3.设置堆、栈的大小; 4.设置异常向量表的入口地址; 5.配置外部SRAM作为数据存储器(这个由用户配置,一般的开发板可没有外部SRAM); 6.设置C库的分支入口__main(最终用来调用main函数); 7.在版的启动文件还调用了在文件中的SystemIni()函数配置系统时钟。

二、汇编指令

三、启动代码 ----- 栈 Stack_Size EQU 0x00000400 ; 栈的大小 AREA STACK, NOINIT, READWRITE,ALIGN=3 Stack_Mem SPACE Stack_Size ; 分配栈空间 __initial_sp ; 栈的结束地址(栈顶地址) 分配名为STACK,不初始化,可读可写,8(2^3)字节对齐的1KB空间。 栈:局部变量,函数形参等。栈的大小不能超过内部SRAM大小。 AREA:汇编一个新的代码段或者数据段。STACK段名,任意命名;NOINIT表示不初始化;READWRITE可读可写;ALIGN=3(2^3= 8字节对齐)。 __initial_sp紧挨了SPACE放置,表示栈的结束地址,栈是从高往低生长,结束地址就是栈顶地址。

----- 堆 Heap_Size EQU 0x00000200 ; 堆的大小(512Bytes) AREA HEAP, NOINIT, READWRITE,ALIGN=3 __heap_base ; 堆的起始地址 Heap_Mem SPACE Heap_Size ; 分配堆空间 __heap_limit ; 堆的结束地址 分配名为HEAP,不初始化,可读可写,8(2^3)字节对齐的512字节空间。__heap_base堆的起始地址,__heap_limit堆的结束地址。堆由低向高生长。动态分配内存用到堆。 PRESERVE8 -- 指定当前文件的堆/栈按照8 字节对齐。 THUMB-- 表示后面指令兼容THUMB 指令。THUBM 是ARM 以前的指令集,16bit;现在Cortex-M 系列的都使用THUMB-2 指令集,THUMB-2 是32 位的,兼容16 位和32 位的指令,是THUMB 的超级。 3.向量表 AREA RESET, DATA, READONLY EXPORT __Vectors E XPORT __Vectors_End E XPORT __Vectors_Size 定义一个名为RESET,可读的数据段。并声明__Vectors、__Vectors_End 和__Vectors_Size 这三个标号可被外部的文件使用。 __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler

相关文档
最新文档