请教怎样将一个数组写入一个文件并在下次开机后自动读取?

webptg 2000-03-13 11:29:00
...全文
314 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Janven 2000-03-15
  • 打赏
  • 举报
回复
不好意思,忘了给你打开文件的代码了
dim SystemConfig$
Dim Fnum As Integer
' 打开配置文件
Fnum = FreeFile
Open App.Path & "your filename" For Binary As #Fnum
SystemConfig$ = Space$(LOF(Fnum))
Get #Fnum, , SystemConfig$
Close #Fnum
「已注销」 2000-03-15
  • 打赏
  • 举报
回复
注册表HKLM\\Software\Microsoft\Windows\CurrentVersion\Run.系统每次启动都会执行其中包含的程序,只要把你的程序名放入其中即可.
long408 2000-03-15
  • 打赏
  • 举报
回复
写:
Dim i As Long
Open FileName For Binary Access Write As #1
For i = 1 To Length(array)
Put #1, , array(i)
Next
Close #1

读:
Dim i As Long
Open FileName For Binary Access Read As #1
For i = 1 To Length(array)
Get #1, , array(i)
Next
Close #1

zhangdr 2000-03-15
  • 打赏
  • 举报
回复
你可以试试用在Form_Load事件内用GetSetting函数将数据读出,在“确定”按钮的Click的事件内用SaveSetting函数将数据写回注册表,它们的使用方法请按F1参考帮助。
LiuJunjiang 2000-03-14
  • 打赏
  • 举报
回复
你的问题不清楚。
谁来自动读取,是你的程序,还是Windows.
如果是你的程序,你可以把数组直接存到文件中,然后开机时运行,在从文件里读出来。

讲数组A写到 文件a.dat中
dim a(10) as long
dim fnum as long
fnum = freefile
open "a.dat" for binary as fnum
put fnum,1 , a
close fnum

将a从文件a.dat中读出来
dim a(10) as long
dim fnum as long
fnum = freefile
open "a.dat" for binary as fnum
get fnum,1 , a
close fnum

Janven 2000-03-14
  • 打赏
  • 举报
回复
咦,你这人怎么这么奇怪呢?仔细看看。用我的方法不正好解决你的问题吗?你只要自己建一个规范一点的INI文件如
[DATA]
TEXT1=XXXX
TEXT2=XXXX
...
[END]
储存用ChangSetup "TEXT1", Test1.test
...
SaveSetup
程序启动时 在Form.Load事件中或启动时调用的标准模块中添加
Test1.test=FindSetup("TEXT1")
...
不就得了,我猜你就是个VB新手,现在已经讲得如此仔细不可能不会做了


webptg 2000-03-14
  • 打赏
  • 举报
回复
LiuJunjiang说的对,我想程序读取数据而非windows。
问题是这样的:
在我的应用程序中,操作者必须修改参数(如几个文本框的内容:text1.text,text2.text,...),我希望下次重新运行此程序时,程序
能保留用户修改过的数据。
Janven 2000-03-13
  • 打赏
  • 举报
回复
写到INI文件中吧,下面分别是查找,更改和储存的函数,应该不难看的。记住每次更改都需调用SaveSetup的。给你一个我的ini的范例吧。
如需更改COMMPort,加入
ChangSetup "COMMPort", Chr$(Portnum + 48)
SaveSetup

查找只需 frmComm.MSComm.CommPort = FindSetup("COMMPort")即可。

[CONFIG]
Range=4;
Unit=V;
Signal=-1;
Fuction=DCV;
TimeNo=0;

[COMM]
COMMPort=1;

[End]
有关函数:
Public Function FindSetup(SetupStr$)
Dim Positions, Positione
Positions = InStr(SystemConfig$, SetupStr$)
Positions = Positions + Len(SetupStr$) + 1
Positione = InStr(Positions, SystemConfig$, ";") - Positions
FindSetup = Mid(SystemConfig$, Positions, Positione)
End Function

Public Sub ChangSetup(SetupStr$, SetupText$)
Dim Positions, Positione
Dim LeftStr$, RightStr$
Positions = InStr(SystemConfig$, SetupStr$)
Positione = InStr(Positions, SystemConfig$, ";")
LeftStr$ = Left$(SystemConfig$, Positions - 1)
RightStr$ = Right$(SystemConfig$, Len(SystemConfig$) - Positione + 1)
SystemConfig$ = SetupStr$ & "=" & SetupText$
SystemConfig$ = LeftStr$ & SystemConfig$ & RightStr$
End Sub

Public Sub SaveSetup()
Dim FNum
Kill App.Path & "\AVTMS100.INI"
FNum = FreeFile
Open App.Path & "\AVTMS100.INI" For Binary As #FNum
Put #FNum, , SystemConfig$
Close #FNum
End Sub
xenogear 2000-03-13
  • 打赏
  • 举报
回复
写注册表或者INI文件
zdg 2000-03-13
  • 打赏
  • 举报
回复
可以考虑写到INI文件中...
Windows API很多函数支持:
GetPrivateProfileInt, GetPrivateProfileString, WritePrivateProfileString......
Un1 2000-03-13
  • 打赏
  • 举报
回复
使用某个(或几个)字符作为分隔符将所有元素连接成字符串保存, 读取后用Split函数将所有元素还原.

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧