Code archives/Miscellaneous/Put some string in bank !

This code has been declared by its author to be Public Domain code.

Download source code

Put some string in bank ! by Filax2004
You can use memory like file, only for text file !
Type Abk_Bank
	Field Bank
	Field Size
	Field WritePointer
	Field ReadPointer
End Type


MyBank=ABK_CreateBank()


fileinput=ReadFile("Readme.txt")

While neo eof(fileinput)
a$=ReadLine(fileinput)
ABK_AddStringToBank(MyBank,a$)
wend

closefile fileinput


For i=1 To 10
Print "["+ABK_ReadBankLine$(MyBank)+"]"
Next

WaitKey 

Function ABK_CreateBank()
	B.Abk_Bank=New Abk_Bank
	B\Bank=CreateBank(0)
	B\Size=0
	B\WritePointer=0
	B\ReadPointer=0

	Return Handle(B)
End Function

Function ABK_AddStringToBank(BankID,StringLine$)
	B.Abk_Bank=Object.Abk_Bank(BankID)

	Local Tmp_Pointeur=B\WritePointer

	B\Size=BankSize (B\Bank)
	StringLine$=StringLine$+Chr$(13)
	
	ResizeBank B\Bank,B\Size+Len(StringLine$)*2
	
	For i=1 To Len(StringLine$)
		B\WritePointer=B\WritePointer+1
		PokeByte( B\Bank,Tmp_Pointeur+B\WritePointer,Asc(Mid$(StringLine$,I,1)))
	Next 
End Function

Function ABK_ReadBankLine$(BankID)
	B.Abk_Bank=Object.Abk_Bank(BankID)

	Local Tmp_Pointeur=B\ReadPointer

	Repeat
		B\ReadPointer=B\ReadPointer+1
		TmpByte=PeekByte(B\Bank,Tmp_Pointeur+B\ReadPointer)

		If TmpByte<>13 Then
			Extract$=Extract$+Chr$(TmpByte)
		Else
			Return Extract$
		EndIf
	Forever
End Function

Function ABK_ClearBank(BankID)
	B.Abk_Bank=Object.Abk_Bank(BankID)
	ResizeBank B\Bank,0
End Function

Function ABK_KillBank(BankID)
	B.Abk_Bank=Object.Abk_Bank(BankID)
	FreeBank B\Bank
	Delete B
End Function

Comments

None.

Code Archives Forum