X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=_src%2FTestByFCBatAuto%2FTestPrompt%2Fvbslib%2Fvbslib300%2Fvbslib.vbs;fp=_src%2FTestByFCBatAuto%2FTestPrompt%2Fvbslib%2Fvbslib300%2Fvbslib.vbs;h=3eadadb69f9e75e9092353f0f2d5504c3c0cf516;hb=d681a438cc3af0b7d3395580d7984b06d4607bfc;hp=8b9be31db2a215895062d3de2e4f17f1a0fce9f7;hpb=8cd319a3714156b275c5e3809401dfccfa472e29;p=vbslib%2Fmain.git
diff --git a/_src/TestByFCBatAuto/TestPrompt/vbslib/vbslib300/vbslib.vbs b/_src/TestByFCBatAuto/TestPrompt/vbslib/vbslib300/vbslib.vbs
index 8b9be31..3eadadb 100644
--- a/_src/TestByFCBatAuto/TestPrompt/vbslib/vbslib300/vbslib.vbs
+++ b/_src/TestByFCBatAuto/TestPrompt/vbslib/vbslib300/vbslib.vbs
@@ -1,6 +1,6 @@
Option Explicit
-' vbslib ver3.00 Sep.22, 2009
+' vbslib ver3.01 Dec.15, 2009
' Copyright (c) 2008-2009, T's-Neko at Sage Plaisir 21 (Japan)
' All rights reserved. Based on 3-clause BSD license.
@@ -365,7 +365,10 @@ End Function
'********************************************************************************
Sub SendKeys( ByVal window_title, ByVal keycords, ByVal late_time )
WScript.Sleep late_time
- If window_title <> "" Then g_sh.AppActivate( window_title )
+ If window_title <> "" Then
+ If not g_sh.AppActivate( window_title ) Then _
+ Raise E_NotFoundSymbol, ""
+ End If
WScript.Sleep 100
g_sh.SendKeys keycords
End Sub
@@ -448,7 +451,7 @@ Public Function input_sub( ByVal msg, bGUI_input )
input_sub = InputBox( msg, WScript.ScriptName, "" )
Wscript.StdOut.WriteLine input_sub
Else
- input_sub = Wscript.StdIn.ReadLine
+ input_sub = StdIn_ReadLine_ForJP()
End If
Wscript.StdOut.WriteLine ""
End If
@@ -458,7 +461,7 @@ Public Function input_sub( ByVal msg, bGUI_input )
input_sub = InputBox( msg, WScript.ScriptName, "" )
Wscript.StdOut.WriteLine input_sub
Else
- input_sub = Wscript.StdIn.ReadLine
+ input_sub = StdIn_ReadLine_ForJP()
End If
Else
If IsEmpty( m_Auto_Src ) Then
@@ -470,7 +473,7 @@ Public Function input_sub( ByVal msg, bGUI_input )
input_sub = call_vbs_t( m_Auto_Src, m_Auto_InputFunc, msg )
If Err.Number = 5 Then Wscript.StdOut.WriteLine vbCR+vbLF+"Not found function of """+_
m_Auto_InputFunc +""" in """+m_Auto_Src+"""" : Err.Clear
- If IsEmpty( input_sub ) Then Wscript.StdOut.Write msg : input_sub = Wscript.StdIn.ReadLine
+ If IsEmpty( input_sub ) Then Wscript.StdOut.Write msg : input_sub = StdIn_ReadLine_ForJP()
End If
End If
@@ -500,6 +503,44 @@ End Class
+'********************************************************************************
+' <<< [StdIn_ReadLine_ForJP] >>>
+'********************************************************************************
+Function StdIn_ReadLine_ForJP()
+ Dim r, i, a
+ Const msg1 = "R}hvvgâ InputBox ÅÍA254¶ÈãÍüèܹñB"
+ Const msg2 = "R}hvvgÅÍAp¶ÈOÌêA128¶ÈãÍüèܹñB"
+ Const msg3 = "à¤êxü͵ľ³¢B"
+
+ Do
+ r = WScript.StdIn.ReadLine
+
+ If Len( r ) >= 254 Then
+ WScript.StdOut.WriteLine msg1
+ WScript.StdOut.Write msg3 + ">"
+ ElseIf Len( r ) > 128 Then
+ For i=1 To 128
+ a = Asc( Mid( r, i, 1 ) )
+ If a < 0 or a > 127 Then
+ r = InputBox( msg2+msg3, WScript.ScriptName )
+ While Len( r ) >= 254
+ r = InputBox( msg1+msg3, WScript.ScriptName )
+ WEnd
+ WScript.StdOut.Write msg3 +">"+ r +vbCRLF
+ Exit For
+ End If
+ Next
+ Exit Do
+ Else
+ Exit Do
+ End If
+ Loop
+
+ StdIn_ReadLine_ForJP = r
+End Function
+
+
+
'*-------------------------------------------------------------------------*
'* ### <<<< File >>>>
'*-------------------------------------------------------------------------*
@@ -604,9 +645,12 @@ End Function
' <<< [AppKeyClass::AddNewWritableFolder] >>>
'********************************************************************************
Public Sub AddNewWritableFolder( Path )
- If g_AppKey Is Me Then m_Key.AddNewWritableFolder( Path ) : Exit Sub
+ AddNewWritableFolder_sub Path, Empty
+End Sub
+Public Sub AddNewWritableFolder_sub( Path, Opt )
+ If g_AppKey Is Me Then m_Key.AddNewWritableFolder_sub Path, Opt : Exit Sub
- Dim abs_path, passed_path, out
+ Dim abs_path, passed_path, out, b
'// Stop at debug
If g_debug_or_test Then
@@ -618,13 +662,18 @@ Public Sub AddNewWritableFolder( Path )
'// If the folder in writable folder, Do nothing
- abs_path = g_CurrentWritables.CheckWritable( Path )
+ abs_path = g_CurrentWritables.CheckWritable( Path, Opt )
If IsEmpty( abs_path ) Then Exit Sub
'// If it is not able to add new writable, raise warning.
- If not IsEmpty( g_CurrentWritables.CheckAddNewWritable( abs_path, out ) ) Then _
- CheckWritable abs_path : Exit Sub
+ If not IsEmpty( g_CurrentWritables.CheckAddNewWritable( abs_path, out ) ) Then
+ b=True: If not( IsEmpty( g_TempFile ) )Then b=( g_TempFile.m_FolderPath <> abs_path )
+ If b Then '// C-language's ||
+ CheckWritable abs_path : Exit Sub
+ End If
+ out = g_TempFile.m_FolderPath
+ End If
passed_path = out
@@ -685,8 +734,7 @@ Public Sub Ask( CheckPath )
Next
If m_WritableMode <> F_ErrIfWarn Then
- echo_r "", ""
+ echo_r GetWarningMessage( msg2, CheckPath ), ""
End If
If m_WritableMode = F_AskIfWarn Then
@@ -721,21 +769,40 @@ Public Sub Ask( CheckPath )
If m_WritableMode = F_BreakIfWarn Then Stop '// Look at caller function using debugger
If m_WritableMode = F_BreakIfWarn or m_WritableMode = F_ErrIfWarn Then
+ echo_r GetWarningMessage( msg2, CheckPath ), ""
Err.Raise E_OutOfWritable,, msg2+"Out of Writable """ & CheckPath & """"
' Watch g_CurrentWritables.CurrentPathes and Path (CheckPath)
End If
End Sub
+
+Public Function GetWarningMessage( msg2, CheckPath )
+ Dim s, writable
+
+ s = ""+vbCRLF
+
+ For Each writable In g_CurrentWritables.CurrentPathes
+ s=s+ " "+vbCRLF
+ Next
+ GetWarningMessage = s+ ""
+End Function
+
+
'********************************************************************************
' <<< [AppKeyClass::InPath] >>>
'********************************************************************************
Public Function InPath( ChkPathes, WritablePathes )
- If IsArray( ChkPathes ) or IsArray( WritablePathes ) Then
- echo ">InPath"
- Else
- echo ">InPath " & ChkPathes & ", " & WritablePathes
+ If TypeName( ChkPathes ) = "ArrayClass" Then
+ InPath = InPath( ChkPathes.m_Array, WritablePathes )
+ Exit Function
+ End If
+ If TypeName( WritablePathes ) = "ArrayClass" Then
+ InPath = InPath( ChkPathes, WritablePathes.m_Array )
+ Exit Function
End If
+
Dim c, w, b
'// ChkPathes To abs path
@@ -823,6 +890,8 @@ Class Writables
If not IsEmpty( m_AppKey ) Then Err.Raise 1,,"Double key"
If not g_AppKey.IsSame( AppKey ) Then Err.Raise 1,,"Invalied AppKey"
+ GetObject_g_TempFile
+
If IsArray( Pathes ) Then
ReDim m_Pathes( UBound( Pathes ) + 1 )
For i=0 To UBound( Pathes )
@@ -844,8 +913,7 @@ Class Writables
m_Pathes(0) = abs_path + "\"
End If
- GetObject_g_TempFile
- m_Pathes( UBound( m_Pathes ) ) = g_TempFile.m_FolderPath
+ m_Pathes( UBound( m_Pathes ) ) = g_TempFile.m_FolderPath '// Last is Temp
Set m_AppKey = AppKey
End Sub
@@ -947,7 +1015,7 @@ Class CurrentWritables
End Sub
- Public Function CheckWritable( Path )
+ Public Function CheckWritable( Path, Opt )
Dim abs_path, writable, s
abs_path = g_fs.GetAbsolutePathName( Path )
If Right( Path, 2 ) = "\." Then abs_path = abs_path + "\."
@@ -961,6 +1029,13 @@ Class CurrentWritables
If StrComp( writable, s, 1 ) = 0 Then Exit Function
Next
+ If Opt = 1 Then
+ s = abs_path : If Right( s, 2 ) = "\." Then s = Left( s, Len( s ) - 1 )
+ For Each writable In Me.CurrentPathes
+ If StrComp( s, Left( writable, Len( s ) ), 1 ) = 0 Then Exit Function
+ Next
+ End If
+
abs_path = g_AppKey.CheckNewWritable( abs_path )
If IsEmpty( abs_path ) Then Exit Function
@@ -994,6 +1069,9 @@ Class CurrentWritables
Public Sub AskFileAccess( AbsPath )
+ If Left( AbsPath, Len( g_TempFile.m_FolderPath ) + 1 ) = g_TempFile.m_FolderPath + "\" Then _
+ Exit Sub
+
If not IsEmpty( m_ProgramFiles ) Then _
If Left( AbsPath, Len( m_ProgramFiles ) ) = m_ProgramFiles or _
Left( m_ProgramFiles, Len( AbsPath ) ) = AbsPath Then _
@@ -1037,7 +1115,7 @@ End Sub
Sub CheckWritable( Path )
Dim abs_path
- abs_path = g_CurrentWritables.CheckWritable( Path )
+ abs_path = g_CurrentWritables.CheckWritable( Path, Empty )
If IsEmpty( abs_path ) Then Exit Sub
g_AppKey.Ask abs_path
End Sub
@@ -1277,15 +1355,17 @@ Sub move( ByVal src, ByVal dst )
If g_fs.FolderExists( dst ) Then
dst = g_fs.BuildPath( dst, g_fs.GetFileName( src ) )
Else
- dst_fo = g_fs.GetParentFolderName( dst )
+ dst_fo = GetParentAbsPath( dst )
If Not g_fs.FolderExists( dst_fo ) Then mkdir dst_fo
End If
echo ">move """ & src & """, """ & dst & """"
+ g_AppKey.AddNewWritableFolder src
If IsWildcard( src ) or not g_fs.FileExists( dst ) Then
g_AppKey.AddNewWritableFolder dst + "\." '// "\." is for able to make writable folder
Else
g_AppKey.AddNewWritableFolder dst
+ del dst
End If
g_fs.MoveFile src, dst
@@ -1342,7 +1422,7 @@ Sub SafeFileUpdate( FromTmpFilePath, ToUpdateFilePath )
Dim en,ed,en2,ed2,i,path
For i=1 To 999
- path = g_fs.GetParentFolderName( ToUpdateFilePath ) + "\" + _
+ path = GetParentAbsPath( ToUpdateFilePath ) + "\" + _
g_fs.GetBaseName( ToUpdateFilePath ) + "." & i & "." + g_fs.GetExtensionName( ToUpdateFilePath )
If not exist( path ) Then Exit For
Next
@@ -1506,7 +1586,7 @@ Function mkdir( ByVal Path )
echo ">mkdir """ & Path & """"
Dim i, n, names(), fo2
- g_AppKey.AddNewWritableFolder Path + "\."
+ g_AppKey.AddNewWritableFolder_sub Path + "\.", 1
If g_fs.FolderExists( Path ) Then mkdir = 0 : Exit Function
@@ -1786,7 +1866,7 @@ Function CreateFile( ByVal Path, ByVal Text )
Path = g_fs.GetAbsolutePathName( Path )
folder = g_fs.GetParentFolderName( Path )
- mkdir folder
+ If not g_fs.FolderExists( folder ) Then mkdir folder
Set t = g_fs.CreateTextFile( Path, True, (g_TextFileCreateFormat = F_Unicode) )
t.Write Text
@@ -1808,7 +1888,8 @@ Function ReadFile( Path )
On Error Resume Next
Set f = g_fs.OpenTextFile( Path, 1, False, -2 )
en = Err.Number : ed = Err.Description : On Error GoTo 0
- If en = E_FileNotExist Then Exit Function
+ If en = E_FileNotExist or en = E_PathNotFound Then Exit Function
+ '// E_PathNotFound is not found parent folder
If en <> 0 Then Err.Raise en,,ed
ReadFile = ReadAll( f )
@@ -1900,7 +1981,6 @@ Function GetTempPath( Param )
GetObject_g_TempFile
'//=== Delete old files
- g_AppKey.AddNewWritableFolder g_TempFile.m_FolderPath + "\."
If not g_fs.FolderExists( g_TempFile.m_FolderPath ) Then _
mkdir g_TempFile.m_FolderPath
@@ -1962,6 +2042,8 @@ Sub GetObject_g_TempFile()
echo "±êÍíµÄàæ¢êtH_ÌpXÅ·©H : " + g_TempFile.m_FolderPath
pause
End If
+
+ g_AppKey.AddNewWritableFolder g_TempFile.m_FolderPath + "\."
End If
End Sub
@@ -2306,10 +2388,7 @@ End Sub
Sub ExpandWildcard_sub( re, flags, folder, step_folder, fnames )
Dim fo, f
- If not g_fs.FolderExists( folder ) Then
- Raise E_PathNotFound, ""
- End If
+ If not g_fs.FolderExists( folder ) Then Exit Sub
Set fo = g_fs.GetFolder( folder )
If flags And F_File Then
@@ -2524,20 +2603,19 @@ End Function
'********************************************************************************
' <<< [XmlAttr] >>>
'********************************************************************************
-Function XmlAttr( ByVal s )
- s = Replace( s, "<", "<" )
- s = Replace( s, """", """ )
- '// s = Replace( s, "'", "'" )
+Function XmlAttr( s )
XmlAttr = Replace( s, "&", "&" )
+ XmlAttr = Replace( XmlAttr, """", """ )
+ XmlAttr = Replace( XmlAttr, "<", "<" )
End Function
'********************************************************************************
' <<< [XmlText] >>>
'********************************************************************************
-Function XmlText( ByVal s )
- s = Replace( s, "<", "<" )
- s = Replace( s, ">", ">" )
+Function XmlText( s )
XmlText = Replace( s, "&", "&" )
+ XmlText = Replace( XmlText, "<", "<" )
+ XmlText = Replace( XmlText, ">", ">" )
End Function
'********************************************************************************
@@ -2547,7 +2625,7 @@ Const F_NoRoot = 1
Const F_Str = &h8000
Function LoadXML( PathOrStr, Opt )
- Dim xml, r, t, i, c
+ Dim xml, r, t, i, c, f
Const start_tag = ""
Const end_tag = ""
@@ -2560,7 +2638,8 @@ Function LoadXML( PathOrStr, Opt )
t = PathOrStr
End If
Else
- t = ReadFile( PathOrStr )
+ Set f = OpenForRead( PathOrStr )
+ t = ReadAll( f )
i=1 : Do : c = Mid( t, i, 1 ) : If c<>" " and c<>vbTab Then Exit Do
i=i+1 : Loop
If (Opt and F_NoRoot) or c<>"<" Then
@@ -3118,8 +3197,11 @@ Function WaitForFinishAndRedirect( ex, path )
If g_debug and IsEmpty( g_ChildHead ) Then g_ChildHead = ">|"
- If path <> "" and path <> "nul" Then _
- Set f = g_fs.OpenTextFile( path, 8, True, False )
+ If path <> "" and path <> "nul" Then
+ Dim ec : Set ec = new EchoOff
+ Set f = OpenForWrite( path, F_Append )
+ ec = Empty
+ End If
Do While ex.Status = 0
If path = "nul" or IsEmpty( path ) Then
@@ -3737,7 +3819,7 @@ End Sub
' <<< [QuickSort] >>>
'********************************************************************************
Sub QuickSort( arr, i_left, i_right, compare_func, param )
- Dim pivot, i_pivot, i_big, i_small, sw
+ Dim pivot, i_pivot, i_big_eq, i_small, sw, n_min_count
If i_left >= i_right Then Exit Sub ' rule-b'
@@ -3746,78 +3828,159 @@ Sub QuickSort( arr, i_left, i_right, compare_func, param )
'//== for debug
+ ' Const watch_sort_id = 6 '//**********************************
+ ' Dim sort_debug_id, sort_debug_id2
+ ' g_SortDebugID = g_SortDebugID + 1
+ ' sort_debug_id = g_SortDebugID
' Dim i, sym, value
- ' echo "QuickSort start ----------------------"
+ ' echo "QuickSort start (" & sort_debug_id & ") ----------------------"
' For i = i_left To i_right
' QuickSort_Debug_getSym arr, i, sym, value
' If i = i_pivot Then value = value & " (pivot)"
' echo "(" & i & ") " & sym & " = " & value
' Next
- ' If i_left = 0 and i_right = 4 Then Stop
+ ' If sort_debug_id = watch_sort_id Then Stop
- i_big = i_left : i_small = i_right
+ '//=== Split to [ arr(i_left) ][ smaller than ][ arr(i_pivot) ][ greater equal ][ arr(i_right) ]
+ i_big_eq = i_left : i_small = i_right
Do
- '// Plus i_big if arr(i_big) is smaller than pivot
+
+ '// Plus i_big_eq. Result is that ( *i_big_eq >= *i_pivot ).
Do
- If compare_func( arr(i_big), pivot, param ) >= 0 Then Exit Do
- i_big = i_big + 1
+ If compare_func( arr(i_big_eq), pivot, param ) >= 0 Then Exit Do
+ i_big_eq = i_big_eq + 1
Loop
- '// Set i_small on equal or bigger than pivot
+ '// Minus i_small. Result is that ( *i_pivot > *i_small ).
Do
- If i_small < i_pivot and i_small < i_big Then
- If i_big < i_pivot Then
- i_small = i_pivot : Exit Do
- ElseIf i_small >= i_left Then
- Exit Do
- Else
- Exit Sub ' rule-c
- End If
- End If
+ If i_small < i_left Then Exit Do
If compare_func( arr(i_small), pivot, param ) < 0 Then Exit Do
i_small = i_small - 1
Loop
- '// Swap
- If i_big < i_small Then ' rule-a
- Set sw = arr(i_big) : Set arr(i_big) = arr(i_small) : Set arr(i_small) = sw
- If i_big = i_pivot Then i_pivot = i_small
- If i_small = i_pivot Then
- i_big = i_big + 1
- If i_big >= i_small Then Exit Do ' rule-c'
+
+ '//== for debug
+ ' If sort_debug_id = watch_sort_id Then
+ ' sort_debug_id2 = sort_debug_id2 + 1
+ ' echo "QuickSort swap (" & sort_debug_id & "-" & sort_debug_id2 & ")-----------------"
+ ' For i = i_left To i_right
+ ' QuickSort_Debug_getSym arr, i, sym, value
+ ' If i = i_small Then value = value & " (i_small)"
+ ' If i = i_big_eq Then value = value & " (i_big_eq)"
+ ' If i = i_pivot Then value = value & " (i_pivot)"
+ ' echo "(" & i & ") " & sym & " = " & value
+ ' Next
+ ' End If
+
+
+ '// Splitted
+ If i_small < i_big_eq Then
+ If i_left <= i_small Then
+ Exit Do
+
+
+ '// If *i_pivot is minimum Then (4) collect minimuns at left
+ Else
+ Set sw = arr(i_left) : Set arr(i_left) = arr(i_pivot) : Set arr(i_pivot) = sw
+ i_big_eq = i_big_eq + 1
+ n_min_count = n_min_count + 1
+
+
+ i_small = i_right '// i_small is iterater to same value as minimum
+ Do
+ If i_big_eq >= i_small Then Exit Do
+
+ '// while ( *i_big_eq == *i_left ) i_big_eq++
+ If compare_func( arr(i_big_eq), pivot, param ) = 0 Then
+ i_big_eq = i_big_eq + 1
+ n_min_count = n_min_count + 1
+
+ '// Swap *i_big_eq and *i_small
+ Else
+ Do
+ If i_small <= i_big_eq Then Exit Do
+ If compare_func( arr(i_small), pivot, param ) = 0 Then
+ Set sw = arr(i_small) : Set arr(i_small) = arr(i_big_eq) : Set arr(i_big_eq) = sw
+ Exit Do
+ End If
+ i_small = i_small - 1
+ Loop
+ If i_small <= i_big_eq Then Exit Do
+ End If
+ Loop
+ Exit Do
+ End If
+
+
+ '// If i_big_eq < i_pivot < i_small Then (1) Swap *i_big_eq and *i_small
+ ElseIf i_big_eq < i_pivot and i_pivot < i_small Then
+ Set sw = arr(i_big_eq) : Set arr(i_big_eq) = arr(i_small) : Set arr(i_small) = sw
+ i_big_eq = i_big_eq + 1 : i_small = i_small - 1
+
+
+ '// If i_big_eq = i_pivot < i_small Then (2A) Rotate3 *i_small -> *i_pivot -> *(i_pivot+1); i_pivot++
+ ElseIf i_big_eq = i_pivot and i_pivot < i_small Then
+ If i_pivot + 1 < i_small Then
+ Set sw = arr(i_pivot+1) : Set arr(i_pivot+1) = arr(i_pivot)
+ Set arr(i_pivot) = arr(i_small) : Set arr(i_small) = sw
+ i_big_eq = i_big_eq + 1 : i_pivot = i_pivot + 1
+
+
+ '// If i_big_eq = i_pivot and i_pivot+1 = i_small Then (2B) Swap *i_big_eq and *i_small
+ '// (If rotate3, The result is Not swaped)
+ Else
+ Set sw = arr(i_big_eq) : Set arr(i_big_eq) = arr(i_small) : Set arr(i_small) = sw
+ i_big_eq = i_big_eq + 1
+ Exit Do
End If
- If i_pivot > i_small Then i_small = i_pivot
+
+
+ '// If i_big_eq < i_small < i_pivot Then (3) Rotate3 *i_small -> *i_big_eq -> *i_pivot; i_pivot--
+ ElseIf i_big_eq < i_small and i_small < i_pivot Then
+ Set sw = arr(i_pivot) : Set arr(i_pivot) = arr(i_big_eq)
+ Set arr(i_big_eq) = arr(i_small) : Set arr(i_small) = sw
+ i_big_eq = i_big_eq + 1 : i_small = i_small - 1 : i_pivot = i_pivot - 1
+
+
Else
- Exit Do
+ Stop
End If
+
Loop
'//== for debug
- ' echo "QuickSort middle ----------------------"
+ ' echo "QuickSort middle (" & sort_debug_id & ") ----------------------"
' For i = i_left To i_right
' QuickSort_Debug_getSym arr, i, sym, value
- ' If i = i_big-1 Then value = value & " (i_big-1)"
- ' If i = i_big Then value = value & " (i_big)"
+ ' If i = i_big_eq-1 Then value = value & " (i_big_eq-1)"
+ ' If i = i_big_eq Then value = value & " (i_big_eq)"
' echo "(" & i & ") " & sym & " = " & value
' Next
+ ' If sort_debug_id = watch_sort_id Then Stop
- QuickSort arr, i_left, i_big-1, compare_func, param ' rule-b
- QuickSort arr, i_big, i_right, compare_func, param ' rule-b
+ QuickSort arr, (i_left + n_min_count), i_big_eq-1, compare_func, param ' rule-b
+ QuickSort arr, i_big_eq, i_right, compare_func, param ' rule-b
'//== for debug
- ' echo "QuickSort end ----------------------"
+ ' echo "QuickSort end (" & sort_debug_id & ")----------------------"
' For i = i_left To i_right
' QuickSort_Debug_getSym arr, i, sym, value
' echo "(" & i & ") " & sym & " = " & value
' Next
+ 'If g_debug Then
+ ' For i_small = i_left To i_right - 1
+ ' If compare_func( arr(i_small), arr(i_small + 1), param ) > 0 Then Error
+ ' Next
+ 'End If
End Sub
'//== for debug
+'Dim g_SortDebugID
'Sub QuickSort_Debug_getSym( Arr, Index, out_Symbol, out_Value )
' out_Symbol = Index
' out_Value = Arr(Index).id
@@ -4034,7 +4197,7 @@ Public Sub Init1( SrcPath, TmpDstPath, bDstWillBeExist )
m_bDstWillBeExist = bDstWillBeExist
mkdir g_fs.GetParentFolderName( g_fs.GetAbsolutePathName( m_TmpDstPath ) )
- Set Me.r = OpenTextFile( m_SrcPath )
+ Set Me.r = OpenForRead( m_SrcPath )
On Error Resume Next
Set Me.w = g_fs.CreateTextFile( m_TmpDstPath, bDstWillBeExist, (g_TextFileConvertFormat = F_Unicode) )
@@ -4798,6 +4961,7 @@ End Sub
'********************************************************************************
Function TryStart( e )
Set e = g_Err2
+ If e.num <> 0 Then Stop '// g_Err2.Clear ³êĢܹñ
If IsEmpty( e.BreakErrID ) Then
TryStart = True
Else