为什么不能从每一个盘根目录下创建一个123.txt为什么呢?
我想在每个盘的跟目录下创建一个123.txt文件,,创建后并写入123456内容..
我测试了只可以在C盘写上一个123.txt 里面的内容居然写了24遍好像..
A = A + 1
If A > 10 Then
Stop
End If
我加入了断点查看了..i的变量没有问题..Private Sub Command2_Click()
On Error Resume Next
For i = 65 To 90
Open Chr(i) & ":\123.txt" For Output As #1
Print #1, "123456"
A = A + 1
If A > 10 Then
Stop
End If
Next
Close
End Sub
我想在每个盘的跟目录下创建一个123.txt文件,,创建后并写入123456内容..
我测试了只可以在C盘写上一个123.txt 里面的内容居然写了24遍好像..
A = A + 1
If A > 10 Then
Stop
End If
我加入了断点查看了..i的变量没有问题..Private Sub Command2_Click()
On Error Resume Next
For i = 65 To 90
Open Chr(i) & ":\123.txt" For Output As #1
Print #1, "123456"
A = A + 1
If A > 10 Then
Stop
End If
Next
Close
End Sub
Exit
End If
感觉open读写比较灵活..
On Error Resume Next
For i = 65 To 90
Open Chr(i) & ":\123.txt" For Output As #1
If Err.Number <> 0 Then
Err.Clear
Else
Print #1, "123456"
End If
Close
NextEnd Sub
On Error Resume Next
For i = 65 To 90
Open Chr(i) & ":\123.txt" For Output As #1
If Err.Number <> 0 Then
Err.Clear
Else
Print #1, "123456"
End If
Close
Next
End Sub
去掉,看看系统爆错没有,不要随便加On Error Resume Next在你没有理解On Error Resume Next,并且对自己的程序了解之前,不要添加On Error Resume Next你的程序逻辑有错误,开始循环就从A盘开始,你有A盘没?
后面该关闭打开文件你没有关闭,
另外open的时候,不是每次都可以用#1的,尤其是你打开的#1编号的文件没有关闭的时候.去掉On Error Resume Next后,你会发现很多错误,这才是你需要学习的.顺便学习调试和F8单步把猴哥虽然该了程序,但是...这个新手LZ不会明白的
不加On Error Resume Next 它就无法进行下去,,因为我在不知道有多少个盘符或名字的情况下的...
这个楼主果然是个天然呆你循环不从A开始行不行,有A盘没有啊,有木有!!!!!!!有木有!!!!!!!有木有!!!!!!!有木有!!!!!!!你就不能从C开始,不行吗????
你就不能用On Error goto abc来捕获错误,退出你那循环???哥的回复你就不能认真点看,不是字字珠玑,起码也是句句有用啊,有木有!!!!!!!有木有!!!!!!!有木有!!!!!!!
#include "stdafx.h"
#include "resource.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endifusing namespace std; // for string class//////////////////
// 下面是一个GetDriveType返回码与人可读字符串的迷你对照表
//
struct {
UINT type; // GetDriveType返回码类型
LPCSTR name; // ascii 名称
} DriveTypeFlags [] = {
{ DRIVE_UNKNOWN, "未知" },
{ DRIVE_NO_ROOT_DIR, "无效路经" },
{ DRIVE_REMOVABLE, "可移动" },
{ DRIVE_FIXED, "固定" },
{ DRIVE_REMOTE, "网络驱动器" },
{ DRIVE_CDROM, "CD-ROM" },
{ DRIVE_RAMDISK, "随机存取磁盘" },
{ 0, NULL},
};//////////////////
// 标准的 MFC 程序入口
//
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) {
cerr << _T("Fatal Error: MFC initialization failed") << endl;
return -1;
} // 获取逻辑驱动器字符串- a:\b:\c:\... 等.
// 还可以用GetLogicalDrives 以位图形式代替字符串形式获取信息 TCHAR buf[100];
DWORD len = GetLogicalDriveStrings(sizeof(buf)/sizeof(TCHAR),buf); // 显示每个驱动器的信息
//
string msg = "逻辑驱动器:\n"; // STL string
for (TCHAR* s=buf; *s; s+=_tcslen(s)+1) {
LPCTSTR sDrivePath = s;
msg += sDrivePath;
msg += " "; // GetDriveType 获取枚举值,如DRIVE_UNKNOWN等.
//
UINT uDriveType = GetDriveType(sDrivePath); // 查找驱动器类型。在此我用了表(结构数组)来进行查找处理,过于繁琐了一些,
// 但既然uDriveType 的值是连续的。
// 用DriveTypeFlags[uDriveType]来代替线性查找也无妨。在实际的编程中通常可以这么做:
// if (uDriveType & DEVICE_CDROM) {
// ……
// }
//
for (int i=0; DriveTypeFlags[i].name; i++) {
if (uDriveType == DriveTypeFlags[i].type) {
msg += DriveTypeFlags[i].name;
break;
}
}
msg += '\n';
}
cout << msg.c_str(); return 0;
}
2.对文件的操作,打开--操作--关闭,这是最基本的
Open Chr(i) & ":\123.txt" For Output As #1
if err.number=0 then
Print #1, "123456"
end if
A = A + 1
If A > 10 Then
Stop
End If
Close #1
Next
S = D.DriveLetter + ":"
你要做的事情。
next
S = D.DriveLetter + ":"Open s &\123.txt" For Output As #1
......
.....
close 1
next