为什么不能从每一个盘根目录下创建一个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

解决方案 »

  1.   

     If A > 10 Then
        Exit
     End If
      

  2.   

    问题不在这,问题是为什么不能在各个盘创建一个txt文件..if a > 10 then 这个是我设置断点看变量的值的
      

  3.   

    chr(i)这个就是啊..chr(67)转换为C chr(68)转换为D啊..反正有盘符的就会创建的..
      

  4.   

    文件的读写我一般用这个OPEN的 不常用FSO..汗.
    感觉open读写比较灵活..
      

  5.   

    Private Sub Command1_Click()
    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
      

  6.   

    Private Sub Command2_Click()
    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
      

  7.   

    On Error Resume Next
    去掉,看看系统爆错没有,不要随便加On Error Resume Next在你没有理解On Error Resume Next,并且对自己的程序了解之前,不要添加On Error Resume Next你的程序逻辑有错误,开始循环就从A盘开始,你有A盘没?
    后面该关闭打开文件你没有关闭,
    另外open的时候,不是每次都可以用#1的,尤其是你打开的#1编号的文件没有关闭的时候.去掉On Error Resume Next后,你会发现很多错误,这才是你需要学习的.顺便学习调试和F8单步把猴哥虽然该了程序,但是...这个新手LZ不会明白的
      

  8.   

    谢谢,,我加这句On Error Resume Next 只是让程序往下遍历所有盘符 并且每一个盘符写入一个文件..
    不加On Error Resume Next 它就无法进行下去,,因为我在不知道有多少个盘符或名字的情况下的...
      

  9.   


    这个楼主果然是个天然呆你循环不从A开始行不行,有A盘没有啊,有木有!!!!!!!有木有!!!!!!!有木有!!!!!!!有木有!!!!!!!你就不能从C开始,不行吗????
    你就不能用On Error goto abc来捕获错误,退出你那循环???哥的回复你就不能认真点看,不是字字珠玑,起码也是句句有用啊,有木有!!!!!!!有木有!!!!!!!有木有!!!!!!!
      

  10.   

    //
    #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;
    }
      

  11.   

    1.先确定机器中的逻辑驱动器盘都有哪些,有你才去操作,On Error Resume Next的不要,你的程序你有责任去控制它的行为;
    2.对文件的操作,打开--操作--关闭,这是最基本的
      

  12.   

    For i = 65 To 90
     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
      

  13.   

    先枚举有多少个盘,再写入。 For Each D In CreateObject("Scripting.FileSystemObject").Drives
       S = D.DriveLetter + ":"
    你要做的事情。
    next
      

  14.   

    For Each D In CreateObject("Scripting.FileSystemObject").Drives
       S = D.DriveLetter + ":"Open s &\123.txt" For Output As #1
    ......
    .....
    close 1
    next