Hi, I have written a pretty basic program designed to sit on a PC and run 24/7. Trouble is after a few hours windws reports virtual memory is running low which I think means there is a flaw in my programming using up more and more memory. Here is the code, perhaps someone can point out the flaw in my program.
; Merlin Whiteboard Display
; Full screen 12 Line display of a Text file created by Whiteboard VB program
; By Neil Corbett
;Global Variables
Dim bayarray$(11,255) ;This array holds all the information (row/column)
Global fntArial ;Font for Display
Global scramblecount ;for matrix effect
Const whiteboard_file$ = "config.dat" ;file containing data
Global quote$
;string manipulation
Dim currentchar(11)
Dim length(11)
;misc
Global updatetimer
Global background_image
; Includes
Include "whiteboard1.bb" ;Static board with scrolling on longer descriptions
Include "whiteboard2.bb" ;Displays the IT Helpline number
Include "whiteboard3.bb" ;Displays the IT Quote of the day
; ==============================================================================================;
; Main Program
initialisevideo
Repeat
;select which view to display on this pass
SeedRnd (MilliSecs())
mode = Rand(1,3)
;load the array for updates
load_array(whiteboard_file)
updatetimer = 0
;Run the preloop code for the selected mode
If mode = 1Then whiteboard1preloop
If mode = 2 Then whiteboard2preloop
If mode = 3 Then whiteboard3preloop
Repeat
;run the random view selected until next pass
If mode = 1 Then whiteboard1loop
If mode = 2 Then whiteboard2loop
If mode = 3 Then whiteboard3loop
updatetimer = updatetimer + 1
If KeyHit(1) Then End
Until updatetimer = 500 Or KeyHit(1)
Until KeyHit(1)
; End of Main Program
; ==============================================================================================;
Function initialisevideo()
;Prepare the variables before running the main loop
;set the resolution
Graphics 1024,768,32,1
;Prepare the Fonts
fntArial=LoadFont("Arial",30,False,False,False)
SetFont fntArial
End Function
Function load_array(file_to_open)
;open the file to read
filein = ReadFile(whiteboard_file)
;Read the Header
quote = ReadLine(filein)
;Read each line in the file to the array
For count = 0 To 11
For count2 = 0 To 3
bayarray(count,count2) = ReadLine(filein)
Next
Next
CloseFile( filein )
;add whitespace to scrolling text
For count = 0 To 11
Length(count) = Len(bayarray(count,1))
If length(count) > 48 Then bayarray(count,1) = " " + bayarray(count,1)
Next
;set the First letter of the descriptions To 1
For count = 0 To 11
currentchar(count) = 1
Next
End Function
****************This is the second file included
Function whiteboard1preloop()
scramblecount = 100
;load the background image
background_image = LoadImage("background.jpg")
;Prepare the Fonts
fntArial=LoadFont("Arial",30,False,False,False)
SetFont fntArial
While scramblecount <> 0 ;Displays scrambling text for a few seconds
SetBuffer BackBuffer()
Cls
DrawImage(background_image,0,0)
updatescramble
Flip
scramblecount = scramblecount - 1
Delay(20)
Wend
End Function
Function whiteboard1loop()
update_changes
update_screen
Delay(200)
End Function
Function updatescramble()
x = 40
For count2 = 0 To 3
If count2 = 1 Then ;this is the description field
Text(x,100,Chr(Rand(97,122)),False,True)
Text(x,150,Chr(Rand(97,122)),False,True)
Text(x,200,Chr(Rand(97,122)),False,True)
Text(x,250,Chr(Rand(97,122)),False,True)
Text(x,300,Chr(Rand(97,122)),False,True)
Text(x,350,Chr(Rand(97,122)),False,True)
Text(x,400,Chr(Rand(97,122)),False,True)
Text(x,450,Chr(Rand(97,122)),False,True)
Text(x,500,Chr(Rand(97,122)),False,True)
Text(x,550,Chr(Rand(97,122)),False,True)
Text(x,600,Chr(Rand(97,122)),False,True)
Text(x,650,Chr(Rand(97,122)),False,True)
End If
If count2 <> 1 Then
Text(x,100,Chr(Rand(80,100)),False,True)
Text(x,150,Chr(Rand(80,100)),False,True)
Text(x,200,Chr(Rand(80,100)),False,True)
Text(x,250,Chr(Rand(80,100)),False,True)
Text(x,300,Chr(Rand(80,100)),False,True)
Text(x,350,Chr(Rand(80,100)),False,True)
Text(x,400,Chr(Rand(80,100)),False,True)
Text(x,450,Chr(Rand(80,100)),False,True)
Text(x,500,Chr(Rand(80,100)),False,True)
Text(x,550,Chr(Rand(80,100)),False,True)
Text(x,600,Chr(Rand(80,100)),False,True)
Text(x,650,Chr(Rand(80,100)),False,True)
End If
If count2 = 0 Then x = x + 55
If count2 = 1 Then x = x + 590
If count2 = 2 Then x = x + 130
Next
End Function
Function update_screen()
SetBuffer BackBuffer()
Cls
DrawImage(background_image,0,0)
draw_text
Flip
End Function
Function update_changes()
For count = 0 To 11
Length(count) = Len(bayarray(count,1))
If currentchar(count) = length(count) Then currentchar(count) = 1
If length(count) > 48 Then currentchar(count) = currentchar(count) + 1
Next
End Function
Function draw_text()
x = 40
For count2 = 0 To 3
If count2 = 1 Then ;this is the description field
Text(x,100,Mid(bayarray(0,count2),currentchar(0),48),False,True)
Text(x,150,Mid(bayarray(1,count2),currentchar(1),48),False,True)
Text(x,200,Mid(bayarray(2,count2),currentchar(2),48),False,True)
Text(x,250,Mid(bayarray(3,count2),currentchar(3),48),False,True)
Text(x,300,Mid(bayarray(4,count2),currentchar(4),48),False,True)
Text(x,350,Mid(bayarray(5,count2),currentchar(5),48),False,True)
Text(x,400,Mid(bayarray(6,count2),currentchar(6),48),False,True)
Text(x,450,Mid(bayarray(7,count2),currentchar(7),48),False,True)
Text(x,500,Mid(bayarray(8,count2),currentchar(8),48),False,True)
Text(x,550,Mid(bayarray(9,count2),currentchar(9),48),False,True)
Text(x,600,Mid(bayarray(10,count2),currentchar(10),48),False,True)
Text(x,650,Mid(bayarray(11,count2),currentchar(11),48),False,True)
End If
If count2 <> 1 Then
Text(x,100,bayarray(0,count2),False,True)
Text(x,150,bayarray(1,count2),False,True)
Text(x,200,bayarray(2,count2),False,True)
Text(x,250,bayarray(3,count2),False,True)
Text(x,300,bayarray(4,count2),False,True)
Text(x,350,bayarray(5,count2),False,True)
Text(x,400,bayarray(6,count2),False,True)
Text(x,450,bayarray(7,count2),False,True)
Text(x,500,bayarray(8,count2),False,True)
Text(x,550,bayarray(9,count2),False,True)
Text(x,600,bayarray(10,count2),False,True)
Text(x,650,bayarray(11,count2),False,True)
End If
If count2 = 0 Then x = x + 55
If count2 = 1 Then x = x + 590
If count2 = 2 Then x = x + 130
Next
End Function
*******************************************************
I am only interested in the whiteboard1 include, the other 2 are blank at present for future additions.
Thanks to anyone who takes a look!
; Merlin Whiteboard Display
; Full screen 12 Line display of a Text file created by Whiteboard VB program
; By Neil Corbett
;Global Variables
Dim bayarray$(11,255) ;This array holds all the information (row/column)
Global fntArial ;Font for Display
Global scramblecount ;for matrix effect
Const whiteboard_file$ = "config.dat" ;file containing data
Global quote$
;string manipulation
Dim currentchar(11)
Dim length(11)
;misc
Global updatetimer
Global background_image
; Includes
Include "whiteboard1.bb" ;Static board with scrolling on longer descriptions
Include "whiteboard2.bb" ;Displays the IT Helpline number
Include "whiteboard3.bb" ;Displays the IT Quote of the day
; ==============================================================================================;
; Main Program
initialisevideo
Repeat
;select which view to display on this pass
SeedRnd (MilliSecs())
mode = Rand(1,3)
;load the array for updates
load_array(whiteboard_file)
updatetimer = 0
;Run the preloop code for the selected mode
If mode = 1Then whiteboard1preloop
If mode = 2 Then whiteboard2preloop
If mode = 3 Then whiteboard3preloop
Repeat
;run the random view selected until next pass
If mode = 1 Then whiteboard1loop
If mode = 2 Then whiteboard2loop
If mode = 3 Then whiteboard3loop
updatetimer = updatetimer + 1
If KeyHit(1) Then End
Until updatetimer = 500 Or KeyHit(1)
Until KeyHit(1)
; End of Main Program
; ==============================================================================================;
Function initialisevideo()
;Prepare the variables before running the main loop
;set the resolution
Graphics 1024,768,32,1
;Prepare the Fonts
fntArial=LoadFont("Arial",30,False,False,False)
SetFont fntArial
End Function
Function load_array(file_to_open)
;open the file to read
filein = ReadFile(whiteboard_file)
;Read the Header
quote = ReadLine(filein)
;Read each line in the file to the array
For count = 0 To 11
For count2 = 0 To 3
bayarray(count,count2) = ReadLine(filein)
Next
Next
CloseFile( filein )
;add whitespace to scrolling text
For count = 0 To 11
Length(count) = Len(bayarray(count,1))
If length(count) > 48 Then bayarray(count,1) = " " + bayarray(count,1)
Next
;set the First letter of the descriptions To 1
For count = 0 To 11
currentchar(count) = 1
Next
End Function
****************This is the second file included
Function whiteboard1preloop()
scramblecount = 100
;load the background image
background_image = LoadImage("background.jpg")
;Prepare the Fonts
fntArial=LoadFont("Arial",30,False,False,False)
SetFont fntArial
While scramblecount <> 0 ;Displays scrambling text for a few seconds
SetBuffer BackBuffer()
Cls
DrawImage(background_image,0,0)
updatescramble
Flip
scramblecount = scramblecount - 1
Delay(20)
Wend
End Function
Function whiteboard1loop()
update_changes
update_screen
Delay(200)
End Function
Function updatescramble()
x = 40
For count2 = 0 To 3
If count2 = 1 Then ;this is the description field
Text(x,100,Chr(Rand(97,122)),False,True)
Text(x,150,Chr(Rand(97,122)),False,True)
Text(x,200,Chr(Rand(97,122)),False,True)
Text(x,250,Chr(Rand(97,122)),False,True)
Text(x,300,Chr(Rand(97,122)),False,True)
Text(x,350,Chr(Rand(97,122)),False,True)
Text(x,400,Chr(Rand(97,122)),False,True)
Text(x,450,Chr(Rand(97,122)),False,True)
Text(x,500,Chr(Rand(97,122)),False,True)
Text(x,550,Chr(Rand(97,122)),False,True)
Text(x,600,Chr(Rand(97,122)),False,True)
Text(x,650,Chr(Rand(97,122)),False,True)
End If
If count2 <> 1 Then
Text(x,100,Chr(Rand(80,100)),False,True)
Text(x,150,Chr(Rand(80,100)),False,True)
Text(x,200,Chr(Rand(80,100)),False,True)
Text(x,250,Chr(Rand(80,100)),False,True)
Text(x,300,Chr(Rand(80,100)),False,True)
Text(x,350,Chr(Rand(80,100)),False,True)
Text(x,400,Chr(Rand(80,100)),False,True)
Text(x,450,Chr(Rand(80,100)),False,True)
Text(x,500,Chr(Rand(80,100)),False,True)
Text(x,550,Chr(Rand(80,100)),False,True)
Text(x,600,Chr(Rand(80,100)),False,True)
Text(x,650,Chr(Rand(80,100)),False,True)
End If
If count2 = 0 Then x = x + 55
If count2 = 1 Then x = x + 590
If count2 = 2 Then x = x + 130
Next
End Function
Function update_screen()
SetBuffer BackBuffer()
Cls
DrawImage(background_image,0,0)
draw_text
Flip
End Function
Function update_changes()
For count = 0 To 11
Length(count) = Len(bayarray(count,1))
If currentchar(count) = length(count) Then currentchar(count) = 1
If length(count) > 48 Then currentchar(count) = currentchar(count) + 1
Next
End Function
Function draw_text()
x = 40
For count2 = 0 To 3
If count2 = 1 Then ;this is the description field
Text(x,100,Mid(bayarray(0,count2),currentchar(0),48),False,True)
Text(x,150,Mid(bayarray(1,count2),currentchar(1),48),False,True)
Text(x,200,Mid(bayarray(2,count2),currentchar(2),48),False,True)
Text(x,250,Mid(bayarray(3,count2),currentchar(3),48),False,True)
Text(x,300,Mid(bayarray(4,count2),currentchar(4),48),False,True)
Text(x,350,Mid(bayarray(5,count2),currentchar(5),48),False,True)
Text(x,400,Mid(bayarray(6,count2),currentchar(6),48),False,True)
Text(x,450,Mid(bayarray(7,count2),currentchar(7),48),False,True)
Text(x,500,Mid(bayarray(8,count2),currentchar(8),48),False,True)
Text(x,550,Mid(bayarray(9,count2),currentchar(9),48),False,True)
Text(x,600,Mid(bayarray(10,count2),currentchar(10),48),False,True)
Text(x,650,Mid(bayarray(11,count2),currentchar(11),48),False,True)
End If
If count2 <> 1 Then
Text(x,100,bayarray(0,count2),False,True)
Text(x,150,bayarray(1,count2),False,True)
Text(x,200,bayarray(2,count2),False,True)
Text(x,250,bayarray(3,count2),False,True)
Text(x,300,bayarray(4,count2),False,True)
Text(x,350,bayarray(5,count2),False,True)
Text(x,400,bayarray(6,count2),False,True)
Text(x,450,bayarray(7,count2),False,True)
Text(x,500,bayarray(8,count2),False,True)
Text(x,550,bayarray(9,count2),False,True)
Text(x,600,bayarray(10,count2),False,True)
Text(x,650,bayarray(11,count2),False,True)
End If
If count2 = 0 Then x = x + 55
If count2 = 1 Then x = x + 590
If count2 = 2 Then x = x + 130
Next
End Function
*******************************************************
I am only interested in the whiteboard1 include, the other 2 are blank at present for future additions.
Thanks to anyone who takes a look!