20200420使用VB6.0求33选6的全组合数(解决变长字符串超过1MB之后写入的问题)

20200420使用VB6.0求33选6的全组合数(解决变长字符串超过1MB之后写入的问题)

 

最近需要求组合数(买双色球生成号码用^_)
以前在大学专门学习过VB6.0,今后会迁移到VC6.0。
预计会在2020.5.1强化一下MFC,就可以了!

 

我也不知道边长字符串到底写入多少回崩溃。(现阶段人也不年轻了,也没有这么多时间去研究了!有兴趣的同学跟帖告诉我一下,在此谢过了!)

 

20200420使用VB6.0求33选6的全组合数(解决变长字符串超过1MB之后写入的问题)

 

VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   12825
   ClientLeft      =   450
   ClientTop       =   615
   ClientWidth     =   14535
   LinkTopic       =   "Form1"
   ScaleHeight     =   12825
   ScaleWidth      =   14535
   Begin VB.TextBox Text2 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   12255
      Left            =   600
      MultiLine       =   -1  'True
      ScrollBars      =   3  'Both
      TabIndex        =   1
      Top             =   360
      Width           =   6135
   End
   Begin VB.CommandButton Command2 
      Caption         =   "求33选6的全组合数"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   26.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   975
      Left            =   8040
      TabIndex        =   0
      Top             =   5520
      Width           =   4935
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Command1_Click()

End Sub

Private Sub Command2_Click()
    Dim h1%, h2%, h3%, h4%, h5%, h6%
    Dim h6sum%
    
    Dim i%
    Dim j%
    Dim temp%
    Dim count%
    Dim guangyayuan(35) As Integer
    Dim wutongshan(35) As Integer
    
    Dim guangyayuan6(35) As Integer
    Dim hong1%, hong2%, hong3%, hong4%, hong5%, hong6%
    
    Dim strWj As String
    
    
    
    
'    For hong1 = 1 To 10
'        'For hong2 = hong1 To 11
'        For hong2 = hong1 + 1 To 11
'            For hong3 = hong2 + 1 To 12
'                For hong4 = hong3 + 1 To 13
'                    For hong5 = hong4 + 1 To 14
'                        For hong6 = hong5 + 1 To 15
    For hong1 = 1 To 28
        For hong2 = hong1 + 1 To 29
            For hong3 = hong2 + 1 To 30
                For hong4 = hong3 + 1 To 31
                    For hong5 = hong4 + 1 To 32
                        For hong6 = hong5 + 1 To 33
                            'Text2 = Text2 & hong1 & "," & hong2 & "," & hong3 & "," & hong4 & "," & hong5 & "," & hong6 & vbCrLf
                            strWj = strWj & hong1 & "," & hong2 & "," & hong3 & "," & hong4 & "," & hong5 & "," & hong6 & vbCrLf
                        Next hong6
                    Next hong5
                Next hong4
            Next hong3
        Next hong2
    Next hong1
    
    
    
    
    'Close #2
    
    'Open "d:\ScoreW2.txt" For Output As #1
    'Open "d:\求12选3的全组合数.txt" For Output As #1
    Open "d:\求33选6的全组合数.txt" For Output As #1
    'Write #1, Text2
    Write #1, strWj
    Close #1
End Sub
 

 

 

我这里采用了一个最简单粗暴的做法,将每一组的六个号码立即写入磁盘。(具体交给操作系统了)

求33选6的全组合数.txt 大概23MB。

大致内容:

 

"1,2,3,4,5,6
"
"1,2,3,4,5,7
"
"1,2,3,4,5,8
"
"1,2,3,4,5,9
"
"1,2,3,4,5,10
"
"1,2,3,4,5,11
"
"1,2,3,4,5,12
"
"1,2,3,4,5,13
"
"1,2,3,4,5,14
"
"1,2,3,4,5,15
"
"1,2,3,4,5,16
"
"1,2,3,4,5,17
"
"1,2,3,4,5,18
"
"1,2,3,4,5,19
"
"1,2,3,4,5,20
"
"1,2,3,4,5,21
"
"1,2,3,4,5,22
"
"1,2,3,4,5,23
"
"1,2,3,4,5,24
"
"1,2,3,4,5,25
"
"1,2,3,4,5,26

 

……

 

"
"25,28,30,31,32,33
"
"25,29,30,31,32,33
"
"26,27,28,29,30,31
"
"26,27,28,29,30,32
"
"26,27,28,29,30,33
"
"26,27,28,29,31,32
"
"26,27,28,29,31,33
"
"26,27,28,29,32,33
"
"26,27,28,30,31,32
"
"26,27,28,30,31,33
"
"26,27,28,30,32,33
"
"26,27,28,31,32,33
"
"26,27,29,30,31,32
"
"26,27,29,30,31,33
"
"26,27,29,30,32,33
"
"26,27,29,31,32,33
"
"26,27,30,31,32,33
"
"26,28,29,30,31,32
"
"26,28,29,30,31,33
"
"26,28,29,30,32,33
"
"26,28,29,31,32,33
"
"26,28,30,31,32,33
"
"26,29,30,31,32,33
"
"27,28,29,30,31,32
"
"27,28,29,30,31,33
"
"27,28,29,30,32,33
"
"27,28,29,31,32,33
"
"27,28,30,31,32,33
"
"27,29,30,31,32,33
"
"28,29,30,31,32,33
"
 

 

 

读者可能很容易看到会多一个英文的引号,这个怎么解决呢?

 

https://zhidao.baidu.com/question/7939187.html
用vb读写文件时,写成的文本文件每行都有双引号,怎么才能把双引号去掉啊?
怎样写的文件,才能没有双引号啊?

wangtk1982  
2006-05-30
使用print语句 不用用write
 本回答由提问者推荐
 3     评论(1) 分享 举报 

monkywin  
2006-05-30
用print写入文件。
用input读取文本。

 

 

 

修正之后:

VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   12825
   ClientLeft      =   450
   ClientTop       =   615
   ClientWidth     =   14535
   LinkTopic       =   "Form1"
   ScaleHeight     =   12825
   ScaleWidth      =   14535
   Begin VB.TextBox Text2 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   12255
      Left            =   600
      MultiLine       =   -1  'True
      ScrollBars      =   3  'Both
      TabIndex        =   1
      Top             =   360
      Width           =   6135
   End
   Begin VB.CommandButton Command2 
      Caption         =   "求33选6的全组合数"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   26.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   975
      Left            =   8040
      TabIndex        =   0
      Top             =   5520
      Width           =   4935
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Command1_Click()

End Sub

Private Sub Command2_Click()
    Dim h1%, h2%, h3%, h4%, h5%, h6%
    Dim h6sum%
    
    Dim i%
    Dim j%
    Dim temp%
    Dim count%
    Dim guangyayuan(35) As Integer
    Dim wutongshan(35) As Integer
    
    Dim guangyayuan6(35) As Integer
    Dim hong1%, hong2%, hong3%, hong4%, hong5%, hong6%
    
    Dim strWj As String
    strWj = ""
    
    Open "d:\求33选6的全组合数.txt" For Output As #1
    
    
    

    For hong1 = 1 To 28
        For hong2 = hong1 + 1 To 29
            For hong3 = hong2 + 1 To 30
                For hong4 = hong3 + 1 To 31
                    For hong5 = hong4 + 1 To 32
                        For hong6 = hong5 + 1 To 33
                            'Text2 = Text2 & hong1 & "," & hong2 & "," & hong3 & "," & hong4 & "," & hong5 & "," & hong6 & vbCrLf
                            'strWj = strWj & hong1 & "," & hong2 & "," & hong3 & "," & hong4 & "," & hong5 & "," & hong6 & vbCrLf
                            strWj = strWj & hong1 & "," & hong2 & "," & hong3 & "," & hong4 & "," & hong5 & "," & hong6
                            
                            'Write #1, strWj
                            Print #1, strWj
                            strWj = ""
                        Next hong6
                    Next hong5
                Next hong4
            Next hong3
        Next hong2
    Next hong1
    
    
    
    
    'Close #2
    
    'Open "d:\ScoreW2.txt" For Output As #1
    'Open "d:\求12选3的全组合数.txt" For Output As #1
    'Open "d:\求33选6的全组合数.txt" For Output As #1
    'Write #1, Text2
    
    'Write #1, strWj
    Close #1
End Sub
 

 

 

 

1,2,3,4,5,6
1,2,3,4,5,7
1,2,3,4,5,8
1,2,3,4,5,9
1,2,3,4,5,10
1,2,3,4,5,11
1,2,3,4,5,12
1,2,3,4,5,13
1,2,3,4,5,14
1,2,3,4,5,15
1,2,3,4,5,16
1,2,3,4,5,17
1,2,3,4,5,18
1,2,3,4,5,19
1,2,3,4,5,20
1,2,3,4,5,21
1,2,3,4,5,22
1,2,3,4,5,23
1,2,3,4,5,24
1,2,3,4,5,25
1,2,3,4,5,26
1,2,3,4,5,27
1,2,3,4,5,28
1,2,3,4,5,29

……

25,28,29,31,32,33
25,28,30,31,32,33
25,29,30,31,32,33
26,27,28,29,30,31
26,27,28,29,30,32
26,27,28,29,30,33
26,27,28,29,31,32
26,27,28,29,31,33
26,27,28,29,32,33
26,27,28,30,31,32
26,27,28,30,31,33
26,27,28,30,32,33
26,27,28,31,32,33
26,27,29,30,31,32
26,27,29,30,31,33
26,27,29,30,32,33
26,27,29,31,32,33
26,27,30,31,32,33
26,28,29,30,31,32
26,28,29,30,31,33
26,28,29,30,32,33
26,28,29,31,32,33
26,28,30,31,32,33
26,29,30,31,32,33
27,28,29,30,31,32
27,28,29,30,31,33
27,28,29,30,32,33
27,28,29,31,32,33
27,28,30,31,32,33
27,29,30,31,32,33
28,29,30,31,32,33