当前位置:编程学习 > VB >>

请教用VB实现自动生成文件的功能

--------------------编程问答-------------------- --------------------编程问答-------------------- 那么这个函数是在formload()调用?保证我每次一运行这个程序就先自动生成一个文件? --------------------编程问答-------------------- 不好意思,应该是我理解错了。在command的click事件中调用 GetAFileName函数?但是按这个循环应该是程序运行后不断的点击按钮,就会自动生成不同的文件名。如果程序一但退出运行后再重新运行,就会生成同名的文件。我的想法是:我运行程序后点击按钮,会自动生成文件,比如1.txt,2.txt,...10.txt,然后我把程序关掉了。过两天我再运行程序,点击这个按钮,能够接着自动生成文件,比如11.txt,12.txt....,这怎么才能做到?
多谢! --------------------编程问答-------------------- 简单的方法是把你最后生成的文件名称保存在一个ini文件或者Log文件中

下次运行程序从这个Ini或者Log文件中读取上一次最后产生的文件名称,然后根据逻辑声称新的文件名,检查这个文件名是否存在,如果不存在就生成,反之继续生成新的文件名 --------------------编程问答-------------------- 也可以生成的时候先dir看看是否有这个文件,再kill对象就行 --------------------编程问答--------------------
引用 3 楼 yijunjun 的回复:
不好意思,应该是我理解错了。在command的click事件中调用 GetAFileName函数?但是按这个循环应该是程序运行后不断的点击按钮,就会自动生成不同的文件名。如果程序一但退出运行后再重新运行,就会生成同名的文件。我的想法是:我运行程序后点击按钮,会自动生成文件,比如1.txt,2.txt,...10.txt,然后我把程序关掉了。过两天我再运行程序,点击这个按钮,能够接着自动生成文件,比如11.txt,12.txt....,这怎么才能做到?
多谢!


只要你生成的文件保存到指定的目录中,每次运行返回的文件名都和存在的文件名不会相同 --------------------编程问答-------------------- 我一般按时间自动生成文件名,最小到秒。 --------------------编程问答-------------------- 日期加上机器的 TickCount 就可以得到唯一的字符串。

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
    MsgBox Format(Date, "yyyymmdd") & Right("0000000" & Hex(GetTickCount()), 8)
End Sub
  --------------------编程问答-------------------- 1、把你最后生成的文件名称保存在一个ini文件或者Log文件中。下次读取这个ini文件。
2、楼上的日期加上机器的 TickCount ,按时间生成也不失为好方法。 --------------------编程问答-------------------- CoCreateGuid
Creates a GUID, a unique 128-bit integer used for CLSIDs and inte易做图ce identifiers.

HRESULT CoCreateGuid(
  GUID  *pguid  //Pointer to the GUID on return
);
 
Parameter
pguid 
[out] Pointer to the requested GUID on return. 
Return Value
S_OK 
The GUID was successfully created. 
Win32 errors are returned byUuidCreate but wrapped as an HRESULT.

Remarks
The CoCreateGuid function calls the RPC function UuidCreate, which creates a GUID, a globally unique 128-bit integer. Use the CoCreateGuid function when you need an absolutely unique number that you will use as a persistent identifier in a distributed environment.To a very high degree of certainty, this function returns a unique value – no other invocation, on the same or any other system (networked or not), should return the same value.

QuickInfo
  Windows NT: Use version 3.1 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in objbase.h.
  Import Library: Included as a resource in ole32.dll.

See Also
UuidCreate 



 
--------------------编程问答--------------------
引用 8 楼 of123 的回复:
日期加上机器的 TickCount 就可以得到唯一的字符串。

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
    MsgBox Format(Date, "yyyymmdd") & Right("0000000" & Hex(GetTickCount()), 8)
End Sub
 


正解!
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,