Sunteți pe pagina 1din 13

Attribute VB_Name = "Zil"

Option Explicit
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Public Sub Init_ruler(ByVal Mn As Long, _
' ByVal Mx As Long, _
' ByVal Vl As Long)
'
' Form1.Ruler1.Min = Mn
' Form1.Ruler1.Max = Mx
' Form1.Ruler1.Value = Vl
' End Sub
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public Sub Push(ByRef s As String, ByVal n As Byte)
If n > Len(s) Then s = String(n - Len(s), " ") + s
End Sub
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public Function last_word(ByVal Shura As String) As String
Dim n As Integer

n = Words_Count(Shura)
If n = 0 Then last_word = Shura Else
last_word = Word_Num(n, Shura)
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public Function cut_from(ByVal Shura As String, ByVal mila As String) As String
Dim p As Integer

p = InStr(Shura, mila)
If p > 0 Then
cut_from = Mid(Shura, 1, p - 1)
Else: cut_from = Shura
End If
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Function today() As String
today = "Date: " + Format(Date, "dd.mm.yyyy")
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Edited: 5.3.2004
'
Public Function Good_fname(st As String) As Boolean

Dim Ot As String
Dim Good_list
Dim n As Integer
Dim Bad_Char As Boolean

st = Trim(st)
If Len(st) > 0 Then
st = UCase(st)
Good_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
n = 0
Bad_Char = False
Do
n = n + 1
Ot = Mid(st, n, 1)
Bad_Char = InStr(Good_list, Ot) = 0
Loop Until Bad_Char Or n = Len(st)
Good_fname = Not (Bad_Char)
End If
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public Function Line_Cnt(ByVal F_name As String) _
As Long
Dim Mone As Long
Dim Shura As String
Mone = 0
Open F_name For Input As #1
While Not EOF(1)
Line Input #1, Shura
Mone = Mone + 1
Wend
Close #1
Line_Cnt = Mone
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public Function Curr_path(ByVal F_name As String) _
As String
Dim temp As String
If InStr(F_name, "\") = 0 Then
Curr_path = "C:\"
Else: Do
F_name = Left(F_name, Len(F_name) - 1)
Loop Until Right(F_name, 1) = "\"
End If
Curr_path = F_name
End Function

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public Function Tn_units(ByVal x As Double) As String
Dim temp As String
Dim y As Long

y = x * 2540000
temp = Trim(str(y))
Push temp, 12
Tn_units = temp
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Calculates the distance between 2 points : X1,Y1 and X2Y2
' -----------------------------------------------------------------
Public Function Get_Dist(ByVal x1 As Single, _
ByVal y1 As Single, _
ByVal X2 As Single, _
ByVal Y2 As Single) As Single
Dim Dx As Single
Dim Dy As Single

If x1 = 0 And y1 = 0 And X2 = 0 And Y2 = 0 Then


Get_Dist = 0
Else
Dx = Abs(X2 - x1)
Dy = Abs(Y2 - y1)
Get_Dist = Sqr((Dx) * (Dx) + (Dy) * (Dy))
End If
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Checks If file Exists ( taken from Internet )
' ------------------------------------------------------------------------
Public Function File_Exists(ByVal Fname As String) As Boolean
Dim t As Integer

Fname = Trim(Fname)
On Error Resume Next
t = Len(Dir(Fname))

If Err Or t = 0 Or Len(Fname) = 0 Then


File_Exists = False
Else
File_Exists = True
End If
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' From Internet
'
Public Function Dir_Exists(ByVal DirName As String) As Boolean

Dim temp As String

On Error Resume Next


If Right$(DirName, 1) <> "\" Then DirName = DirName & "\"
temp = Dir$(DirName & "*.*", vbDirectory)
Dir_Exists = Not (temp = vbNullString)
End Function
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Renames a file
' --------------------------------------------------------------
Public Sub Rename(ByVal O_file As String, ByVal N_file As String)
Dim Response As Integer
Dim Msg As String

If File_Exists(O_file) = True Then


If File_Exists(N_file) Then
Msg = N_file + " Exists. OverWrite ?"
Response = MsgBox(Msg, 4, "!!!")
If Response = vbYes Then
Kill N_file
Name O_file As N_file
End If ' If response =YES
Else ' Destination file Does Notexist
Name O_file As N_file
End If ' Destination file exists
End If
End Sub
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Extracts file name from path
' -------------------------------------------------
Public Function Ext_Fname(ByVal Pth As String) As String
Dim temp As String
Dim n As Integer
Dim Ot As String

If InStr(Pth, "\") = 0 Then


Ext_Fname = Pth
Else
temp = ""
n = Len(Pth) + 1
Do
n = n - 1
Ot = Mid(Pth, n, 1)
If Ot <> "\" Then temp = Ot + temp
Loop Until Ot = "\"
Ext_Fname = temp
End If
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Input : Any file name ( full path or file name only )
' Output : File name with extention: ".OLD"
' -----------------------------------------------------------------
Public Function Get_Old_Ext(ByVal Fname As String) As String
Dim temp As String
Dim p As Integer
Dim New_Name As String

temp = Ext_Fname(Fname)
p = InStr(temp, ".")
If p = 0 Then
New_Name = temp + ".old"
Else
New_Name = Mid(temp, 1, p) + "old"
End If
Get_Old_Ext = Curr_path(Fname) + New_Name
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' All characters from Rem_Chars will be replaced with BLANKS in string S.
' --------------------------------------------------------------------------
Public Sub Replace_Chars(ByRef s As String, ByVal Rem_Chars As String)

Dim n As Byte

If Len(Rem_Chars) > 0 Then


For n = 1 To Len(Rem_Chars)
s = Replace(s, Mid(Rem_Chars, n), " ")
Next n
End If
End Sub
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Calculates the SMALLEST number for a given array.
' Input : array of single
' Output : single
'
----------------------------------------------------------------------------------
----
Public Function Calc_Minimum(ByRef Lst() As Single) As Single
Dim temp As Single
Dim n As Integer

If UBound(Lst) = 1 Then
Calc_Minimum = Lst(1)
Else
temp = Lst(1)
For n = 2 To UBound(Lst)
If Lst(n) < temp Then temp = Lst(n)
Next n
Calc_Minimum = temp
End If
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Calculates the BIGGEST number for a given array.
' Input : array of single
' Output : single
'
----------------------------------------------------------------------------------
----
Public Function Calc_Maximum(ByRef Lst() As Single) As Single
Dim temp As Single
Dim n As Integer

If UBound(Lst) = 1 Then
Calc_Maximum = Lst(1)
Else
temp = Lst(1)
For n = 2 To UBound(Lst)
If Lst(n) > temp Then temp = Lst(n)
Next n
Calc_Maximum = temp
End If
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Returns TRUE if n is a SINGLE LETTER
' -------------------------------------------------------------
Public Function Is_Letter(ByVal n As String) As Boolean
Dim Alpha As String
n = UCase(Trim(n))
Alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Is_Letter = Len(n) = 1 And InStr(Alpha, n) > 0
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Returns TRUE is a string is an INTEGER : 0, 1, 2,
' -----------------------------------------
Public Function Only_Digits(ByVal s As String) As Boolean

Const Num_list = "0123456789"


Dim n As Integer
Dim wrong As Boolean

s = Trim(s)
n = 0
If Len(s) > 0 Then
wrong = False
Do
n = n + 1
wrong = InStr(Num_list, Mid(s, n, 1)) = 0
Loop Until n = Len(s) Or wrong = True
Only_Digits = Not (wrong)
Else 'len(s)=0
Only_Digits = False
End If

End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Returns TRUE is a string is an INTEGER : 0, 1, 2,
' -----------------------------------------
Public Function Is_Int(ByVal s As String) As Boolean

Const Num_list = "0123456789"


Dim n As Integer
Dim wrong As Boolean

'Num_list = "0123456789"

s = Trim(s)
n = 0
If Len(s) > 0 Then
wrong = False
Do
n = n + 1
wrong = InStr(Num_list, Mid(s, n, 1)) = 0
Loop Until n = Len(s) Or wrong = True
Is_Int = Not (wrong)
Else 'len(s)=0
Is_Int = False
End If

End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Allows to display only numbers (Pos. neg. ractions )
'
---------------------------------------------------------------------------------
Public Function Is_num(ByVal s As String) As Boolean
Is_num = CBool(s = "" Or s = "-" Or s = "-." Or s = "." Or IsNumeric(s))
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Returns TRUE for: 0 1 2 3 .... and fractions
'
---------------------------------------------------------------------------------
Public Function Is_Pos(ByVal s As String) As Boolean
Is_Pos = Val(s) >= 0 And IsNumeric(s)
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Returns TRUE for: 1 2 3
'
---------------------------------------------------------------------------------
Public Function Is_Natural(ByVal s As String) As Boolean
Is_Natural = Is_Int(s) And Fix(Val(s)) > 0 ' Not fix(s). fix (Y7) is an
error !!!
End Function
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Writes An array of strings into a file in the this format:
' ============================================================
' Hdr Lst(1) lst(2) Lst(3)
' Lst(4) lst(5) Lst(6)
' Lst(7) lst(8) Lst(9)

' Wdt is the field width if Hdr


'=============================================================
Public Sub Write_List(ByRef Lst() As String, ByVal Hdr As String, _

ByVal Wdt As Integer)


Dim Shura As String
Dim n As Integer

Print #3, " " ' Empty line

Push Hdr, Wdt


Arrange_Groups Lst, Len(Hdr)
For n = 1 To UBound(Lst)
If n > 1 Then
Print #3, " " + Lst(n)
Else
Print #3, Hdr + " " + Trim(Lst(1))
End If
Next n
End Sub
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Sends a file to the printer
' -----------------------------------------
Public Sub Print_File(ByVal Kovetz As String)
Dim n As Integer
Dim s As String

If File_Exists(Kovetz) Then
Open Kovetz For Input As #1
'Printer.FontName = "Arial"
' Printer.Font.Size = 11
' Printer.Font.Bold = True
While Not EOF(1)
Line Input #1, s
Printer.Print s
Wend
Close #1
Else
MsgBox "File not found: " & Kovetz, 16, " Error"
End If
End Sub
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' If s=Directory - Return s
' If s=File name - return directory of that file
' -------------------------------------------------------------------
Public Function Get_Path(ByVal s As String) As String

If File_Exists(s) Then
Get_Path = Curr_path(s)
Else
Get_Path = s
End If
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Private Function Is_Cmp_Line(ByVal s As String) As Boolean
Dim W1 As String

W1 = Word_Num(1, s)
Is_Cmp_Line = Len(s) > 0 And InStr(W1, "(") = 0 _
And Mid(s, 1, 1) <> "#" And W1 <> "UNITS"
End Function
''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public Function Sin_Deg(ByVal deg As Double) As Double
Sin_Deg = Sin(deg * 0.01745329252) ' pi/180=0.01745329252
End Function
''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public Function Cos_Deg(ByVal deg As Double) As Double
Cos_Deg = Cos(deg * 0.01745329252) ' pi/180=0.01745329252
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

' Hdr = header text


' Ot = Character for line delimiters
' X = Column of line delimiter
' Y = Shift oh header inside line delimiters
' =========================================
Public Sub Write_header(ByVal Hdr As String, ByVal Ot As String, _
ByVal x As Byte, ByVal y As
Byte)

Dim Kav As String

Kav = String(Len(Hdr) + 2 * y, Ot)


Print #3, " "
Print #3, Spc(x); Kav
Print #3, Spc(x + y); Hdr
Print #3, Spc(x); Kav
Print #3, " "
End Sub
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Copied from Internet 12.11.2002
'
Public Function Swap_Str(Shura As String, s1 As String, s2 As String) As String

Dim p As Long

p = 1
If InStr(Shura, s1) > 0 Then
Do
p = InStr(p, Shura, s1)
Shura = Left$(Shura, p - 1) & s2 & Right$(Shura, Len(Shura) - p -
Len(s1) + 1)
Loop Until InStr(Shura, s1) = 0
End If
Swap_Str = Shura
End Function
''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' NEW VERSION 12.11.2002
Public Sub Add_Spc(ByRef str As String, ByVal n As Integer)
If (n > Len(str)) Then str = str & Space$(n - Len(str))
End Sub
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' 12.11.2002 . The new Function works much FASTER. proved !
'
Public Function Words_Count(ByVal str1 As String) As Integer
Dim n As Integer
Dim K As Integer
K = 0
str1 = Trim(str1)
If Len(str1) > 0 Then

str1 = Swap_Str(str1, " ", " ")


For n = 1 To Len(str1)
If Mid(str1, n, 1) = " " Then K = K + 1
Next
Words_Count = K + 1

Else
Words_Count = 0
End If
End Function

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'
' 13.11.2002 NEW VERSION. WORKS 3% FASTER THEN OLD ONE.
' 26.2.2003 Added : If n <= Words_Count(s) Then ...

Public Function Word_Num(ByVal n As Integer, ByVal s As String) As String


Dim arr() As String

If n <= Words_Count(s) Then


s = Trim(Swap_Str(s, " ", " "))
If Len(s) > 0 Then
arr = Split(s)
Word_Num = arr(n - 1) ' Because THIS aray is zero based
End If
Else
Word_Num = ""
End If
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'
' NEW VERSION. WORKS 98% FASTER THEN OLD ONE.
'
Public Function Ext_to_word(ByVal K As Byte, s As String) As String
Dim Lst() As String

s = Trim(Swap_Str(s, " ", " "))


If K > 0 And Len(s) > 0 Then
Lst = Split(s)
ReDim Preserve Lst(K - 1)
Ext_to_word = Trim(Join(Lst))
Else
Ext_to_word = ""
End If

End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Returns a string containing words: N to End of original string
' NEW VERSION. WORKS 86% FASTER THEN OLD ONE.
Public Function Ext_From(ByVal K As Integer, ByVal s As String) As String
Dim Lst() As String
Dim Lst2() As String
Dim n As Integer
s = "XX " + s ' to ignore later word-1 in string
s = Trim(Swap_Str(s, " ", " "))
If K = 0 Then K = 1
If K <= Words_Count(s) And Len(s) > 0 Then
Lst = Split(s)
ReDim Lst2(0)
For n = K To UBound(Lst)
Add_to_list Lst2, Lst(n)
Next n
Ext_From = Trim(Join(Lst2))
Else
Ext_From = ""
End If
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' generates a random integer between Min and max
'
Public Function Rnd_int(ByVal Min As Integer, _
ByVal Max As Integer) As Integer

Randomize
Rnd_int = Int(Max - Min) * Rnd + Min

' Acording to Msdn: ( mistake !!! )


' Rnd_int = Int(Max - Min + 1) * Rnd + Min
End Function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public Sub Display_Embossed(ByRef txt As Object, ByVal Bg_Color As Long)

txt(0).BackStyle = 0 ' MUST be first command !!


Load txt(1) ' White
Load txt(2) ' Dark Grey

txt(0).ForeColor = Bg_Color

With txt(1)
.ForeColor = &HFFFFFF ' Light_color : White
.Left = txt(0).Left - 10
.Top = txt(0).Top + 10
.Visible = True
End With

With txt(2)
.ForeColor = &H808080 ' Dark_color : dark grey
.Left = txt(0).Left + 10
.Top = txt(0).Top - 10
.Visible = True
End With
End Sub
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Draw an horizontal or vertical etched line
'
Public Sub Etched_Line(Curr_Frm As Form, ByVal x1 As Integer, ByVal y1 As Integer,
_
ByVal lng As Integer, ByVal Orient
As Byte)

Const K = 22 ' the distance between the 2 created lines


Const My_white = vb3DHighlight
Const My_Gray = vb3DShadow

If Orient = 1 Then ' Draw vertical


Curr_Frm.Line (x1, y1)-(x1, y1 + lng), My_Gray
Curr_Frm.Line (x1 + K, y1)-(x1 + K, y1 + lng), My_white
Else ' Draw horizontal
Curr_Frm.Line (x1, y1)-(x1 + lng, y1), My_Gray
Curr_Frm.Line (Curr_Frm.CurrentX, y1 + K)-(x1, y1 + K), My_white
End If
End Sub

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Added 26.1.2004
' Given: Key = "aa bb cc dd"
' function = true if aa OR bb OR cc OR dd" is found in st
'
Public Function In_filter(ByVal st As String, ByVal Key As String) As Boolean
Dim n As Byte
Dim found As Boolean

If Len(Trim(st) > 0) And Len(Trim(Key)) > 0 Then


n = 0
found = False
Do
n = n + 1
found = InStr(st, Word_Num(n, Key)) > 0
Loop Until found = True Or n = Words_Count(Key)
In_filter = found
Else
In_filter = False
End If

End Function
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Checked for 100000 elements. Works fine.
' Scrambles the numbers in a given array
'
Public Sub Scramble_array(ByRef Lst() As Long)
Dim Max As Long
Dim Old_Lst() As Long
Dim Used_Cell() As String
Dim Is_new As Boolean
Dim n As Long
Dim Num As Long

ReDim Used_Cell(0)
If UBound(Lst) > 1 Then
Old_Lst = Lst
Max = UBound(Old_Lst)
ReDim Lst(0)

For n = 1 To Max - 1 ' Do not assign vaue to LAST link


Is_new = False
Do
Num = Rnd_int(1, UBound(Old_Lst))
Is_new = Not In_list(str(Num), Used_Cell)
Loop Until Is_new
ReDim Preserve Lst(UBound(Lst) + 1)
Lst(UBound(Lst)) = Old_Lst(Num) ' Copy last link to current
link

Old_Lst(Num) = Old_Lst(UBound(Old_Lst))
ReDim Preserve Old_Lst(UBound(Old_Lst) - 1) ' Remove last link
Next n

ReDim Preserve Lst(UBound(Lst) + 1)


Lst(Max) = Old_Lst(1) ' The only link in Old_lst

End If
End Sub
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' fills a given array with numbers in range Min to Max.
' Each number may appear more then once.
'
Public Sub Fill_Rnd(ByRef Lst() As Long, ByVal Min As Long, ByVal Max As Long)
Dim n As Long

Randomize
For n = 1 To UBound(Lst)
Lst(n) = Int(Max - Min) * Rnd + Min
Next n
End Sub
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' fills a given array with numbers in range Min to Max
' Each number appears ONLY ONCE
'
Public Sub Fill_Rnd_Unique(ByRef Lst() As Long, ByVal Min As Long, ByVal Max As
Long)
Dim n As Long
Dim arr() As String
Dim Num As Integer

ReDim arr(0)
If UBound(Lst) = Max - Min + 1 Then ' THIS IS A MUST
Do
Randomize
Num = Int(Max - Min) * Rnd + Min
If Not In_list(Trim(str(Num)), arr) Then
Add_to_list arr, Trim(str(Num))
n = n + 1
Lst(n) = Num
End If
Loop Until UBound(arr) = UBound(Lst)
End If
End Sub
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Waits n seconds with doing nothing. ' Added 4.10.2006
'
Public Sub wait(n As Single)
Dim start As Single

start = Timer ' Set start time.


Do While Timer < start + n
Loop
End Sub
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Deletes file if exists ' Added 9.10.2007
Public Sub Delete_File(ByVal Fname As String)
If File_Exists(Fname) Then Kill (Fname)
End Sub
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Returns base 10 Logarithmus of a number
'
Public Function Log10(ByVal x As Double) As Double
Log10 = Log(x) / Log(10)
End Function
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' Calculated Log of any number in any base
'
Public Function Calc_log(ByVal x As Single, ByVal b As Integer) As Single
Calc_log = Log10(x) / Log10(b)
End Function
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

' ==================================================================
' Add the following functions to Zil.bas or Zil_arr.bas AFTER CHECKING
' ==================================================================
' Checked. Ok. 15.5 2007
' Returns the input string in fixed width
'
Public Function Fixed_width(ByRef In_str As String, ByVal n As Byte) As String
Dim s As String

Fixed_width = In_str
If n > Len(In_str) Then
s = In_str
While Len(s) < n: s = s & " ": Wend
Fixed_width = s
End If

End Function
' ==================================================================

S-ar putea să vă placă și