You don't have to be limited to 64K size files for a for a standard Textbox control in VB6. This small sample project shows you how to load, edit and save plain text files, UNLIMITED by file size using the Standard VB6 Textbox control. It's all done in just a few simple lines of code. Please note that this method works on NT, Windows 2000, XP and Vista. If you're coding for systems that use Win95/98 or ME this method will not work. View the readhuge.txt file for full details. (UPDATE: Changed method from Clipboard method to an API method which is even more efficient and does not mess with any data in the clipboard and the end result is the same. Thanks to Kenneth Buckmaster and Rob C. for their input.)
'Windows API/Global Declarations for :Breaking the Textbox 64K File Size Limit (UPDATE: Sept. 15th, 2007)
'API's and Const to load large files
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetWindowTextLength Lib "user32" _
Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Const WM_SETTEXT = &HC
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come
out every day, so no prevention program can catch 100% of them. For your own safety, please:
Re-scan downloaded files using your personal virus checker before using it.
NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
Scan the source code with Minnow's Project Scanner
If you don't have a virus scanner, you can get one at many places on the net
Terms of Agreement:
By using this code, you agree to the following terms...
You may use
this code in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.
You may link to this code from another website, but ONLY if it is not wrapped in a frame.
You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.
I have no idea if this works on Win95/98 or ME since I've only tested on XP and Vista should work for NT and 2000 as well. Would be interested if anyone out there is still using 95/98/ME to let me know. (If this comment was disrespectful, please report it.)
Kenneth Buckmaster is right. It does not work in Win9x/Me. The line: frmHugeText.Text1.SelText = Clipboard.GetText() caused error: '#7 - Out of memory.' (If this comment was disrespectful, please report it.)
Ok then... this technique works only in NT, Windows 2000, XP and Vista. So if your programming for Win95/98/ME it's a no go. Still a pretty cool technique for those programming for this century. (If this comment was disrespectful, please report it.)
Your solution got me thinking, that there probably is an API call involved when pasting into the Textbox, and the API does not have the limit problem. Did a 'Google' and came up with two solutions, both of which will not annoy the user by clearing what he previously had in the ClipBoard
http://vb.mvps.org/art icles/ap200009.asp (If this comment was disrespectful, please report it.)
Hey Rob: Thanks for the feedback. I was thinking the same thing as I was reading the MSDN article. I'm changing the example and am re-uploading. Re: Option Explicit... absolutely correct. Just threw the example together and forgot it. Thanks, again! (If this comment was disrespectful, please report it.)
You are correct, Robert. And there are times when you need to have plain ASCII text with no formatting. Even though you can save as text in a Rich Textbox, Windows still interprets the content as RTF. Guess that's why notepad is still alive and kicking. :) (If this comment was disrespectful, please report it.)
Hi Tom, It's me again. I tripped over this today, and had another look at it. I have enahnced the bas file to have no direct reference to the Form. (IE there is no hard coding of the Form's name 'frmHugeText.'). Email me, if you would like me to send the project to you, at robhp AT iprimus DOT com DOT au
(If this comment was disrespectful, please report it.)
Add Your Feedback
Your feedback will be posted below and an email sent to
the author. Please remember that the author was kind enough to
share this with you, so any criticisms must be stated politely, or they
will be deleted. (For feedback not related to this particular code, please
click here instead.)