副教授"加原来工资的 15%,"讲师"加原来工资的10%,"助教"加原来工资的5%,其他人员不加工资。本程序要求根据加工资的条件修改原来文本文件内各类人员的相应工资。 分析:
由于文本文件不能直接进行修改,只能增加一个临时文件,依次从老文件读出内容,判断是否满足要修改的条件,若不修改,则将原来内容写到临时文件中;若修改,则将新内容写入临时文件中,直到文件结束。
然后通过临时文件将内容重新依次写回到老文件;当然也可通过VB提供的文件操作命令,删除老文件,将临时文件名改名为老文件或将临时文件复制为老文件。
由此可见顺序文件修改某一条记录比较麻烦,但适合于批量数据的整体修改或处理。 Private Sub Command1_Click( ) Dim no%, gz !,zc $
Open"c: \\ my \\ zg.dat"For Input As # 1 Open"c: \\ my \\ lszg.dat"For output As # 2 Do While Not EOF(1) ________ Select Case zc ________
gz = gz * 1.15 Case"讲师" ________ Case"助教" gz = gz * 1.05 End Select ________
Loop
Close # 1, # 2
Open"c: \\ my \\ zg.dat"________ Open"c: \\ my \\ lszg.dat"________ Do While Not EOF(2) Input # 2, no, gz, zc ________ Loop
Close # 1, # 2 End Sub
6. 统计文本文件中各个字母出现的个数(大小写不区分),存放在S字符串数组中,统计
结果在窗体上显示出现过的字母和出现的次数。要求:
(1) 统计的文件名通过文件列表框获得,文件列表框的名称为File1,文件列表框仅
显示扩展名为.txt的文件。
(2) 当双击文件列表框的某选中的文件时,将文件内容全部读入文本框,然后对其
进行统计。界面如图所示。
- 76 -
Private Sub Drive1_Change( ) Dir1.Path = Drive1.Drive End Sub
Private Sub Dir1_Change( ) File1.Path = Dir1.Path End Sub
Private Sub File1_DblClick( )
Dim s %(1 To 26),i %,C $,j%,fname $ For i = 1 To 26 s(i)________ Next i
If Right(File1.Path,1)="\\"Then
Fname = File1.Path+File1.FileName Else
Fname = ________ End If
Label1 = "选中的文件名"+fname Open fname For Input As # 1 Text.Text = ________
For j = 1 To Len(Text1.Text) C = ________
If C > = "A"And C < = "Z"Then i = ________ s(i) = s(i)+1 End If Next j
Print"出现的字母及个数" For i = 1 To 26 If ________ Next i End Sub
7. 将任一整数插入递增次序的数组a中,使数组仍有序。数组a各元素的值从C盘根目录,
文件名为 data.txt中读取,各数据项间以逗号分隔。
- 77 -