comments
Uses: FileMap2.inc, FileMemMang2.inc, FStr16.inc, FLStack.inc
This is basically and example for the File Mapping module and the UDT Memory Manager.
It’s a 100% file-based, very fast, String Stack.
Pop 10,000 string in 0.06 seconds: file based string stack
This just uses FLStack.inc to push/pop string handles on a Long Stack.
The string storage taken care of by FStr16.inc.
FileMap2.inc gives us incredible speed for a file based string stack.
FileMemMang2.inc makes building file based structures, such as stacks, simple.
Strings can be any length.
Uses: FileMap2.inc, FileMemMang2.inc, FStr16.inc, FLStack.inc
This is basically and example for the File Mapping module and the UDT Memory Manager.
It’s a 100% file-based, very fast, String Stack.
Pop 10,000 string in 0.06 seconds: file based string stack
This just uses FLStack.inc to push/pop string handles on a Long Stack.
The string storage taken care of by FStr16.inc.
FileMap2.inc gives us incredible speed for a file based string stack.
FileMemMang2.inc makes building file based structures, such as stacks, simple.
Strings can be any length.
Code:
' pb 5/9 'FSStack.inc ' ' File Based: String Stack ' ' #Include Once "C:\PB9\FileMapping\FileMap2.inc" #Include Once "C:\PB9\FileMapping\FileMemMang2.inc" #Include Once "C:\PB9\FileMapping\FLStack.inc" #Include Once "C:\PB9\FileMapping\FStr16.inc" ' Type FSStackT stack As FLStackT str As FStr16T End Type ' Function FSStack_Create(t As FSStackT, ByVal file As String) As Long 'create new file - open for use - True/False success If FLStack_Create(t.stack, file) Then If t.str.pMem = %NULL Then FStr16_Initiate t.str, t.stack.mem Function = %TRUE End If End Function ' Function FSStack_Open(t As FSStackT, ByVal file As String) As Long 'open existing file - True/False success If FLStack_Open(t.stack, file) Then If t.str.pMem = %NULL Then FStr16_Initiate t.str, t.stack.mem Function = %TRUE End If End Function ' Sub FSStack_Close(t As FSStackT) 'close file FLStack_Close t.stack End Sub ' Sub FSStack_Clear(t As FSStackT) 'delete all data - trim file FLStack_Clear t.stack End Sub ' Function FSStack_Count(t As FSStackT) As Long 'get stack count Function = FLStack_Count(t.stack) End Function ' Sub FSStack_Push(t As FSStackT, ByRef s As String) 'push value on stack FLStack_Push t.stack, FStr16_Put(t.str, s) End Sub ' Function FSStack_Peek(t As FSStackT) As String 'get top item on stack Function = FStr16_Get(t.str, FLStack_Peek(t.stack)) End Function ' Function FSStack_Pop(t As FSStackT) As String 'pop top item off stack Local hStr As Long hStr = FLStack_Pop(t.stack) Function = FStr16_Get(t.str, hStr) FStr16_Remove(t.str, hStr) End Function '
Comment