data types

Posted on 2003-11-19
Last Modified: 2012-05-04
I am wanting to parse a text file,

the text file will be parsed into smaller 'blocks' of text and passed into another class.

What would be the best method of passing these blocks of text.

I know a 'string' is too small, is there something like a 'memo' that can hold more text?

Question by:calebS

Accepted Solution

TooKoolKris earned 40 total points
ID: 9783856
You can hold quite a bit of data in a string if you use an array. You could also split() the text on the "." so that each sentence would be an element of this array.

Author Comment

ID: 9783888
the file will look as below, with multiple (about 23) 'type' section (the type section being everything I have include except the first 3 lines). I want to pass the entire 'type' section into a class.


I really want to pass it as an entire block.

Is it possible to pass reference to the start and end positions within the textfile itself?

//my data file below.
STYLE "Harvard"

TYPE "Book"
    ADD _Title            (0, "Title:", LABELLEFT, 320, LABELWIDTH_LG, TEXTLEFT, 260, TEXTWIDTH_LG, "", True)
    ADD _AUTHOR            (1, "Author/s:", LABELLEFT, 620, LABELWIDTH_LG, TEXTLEFT, 560, TEXTWIDTH_LG, "Seperate additional authors with a colon (;)", True)
    ADD _Publisher      (2, "Publisher:", LABELLEFT, 920, LABELWIDTH_LG, TEXTLEFT, 860, TEXTWIDTH_LG, "", True)
    ADD _Location      (3, ElectronicLocation, LABELLEFT, 1220, LABELWIDTH_LG, TEXTLEFT, 1160, TEXTWIDTH_LG, "", True)
    ADD _Year            (4, "Year Published:", LABELLEFT, 1520, LABELWIDTH_LG, TEXTLEFT, 1460, TEXTWIDTH_SM, "", True)
    ADD _Page            (5, "Page Number:", LABELLEFT, 1820, LABELWIDTH_LG, TEXTLEFT, 1760, TEXTWIDTH_SM, "", True)
    ADD _Volume            (6, "Volume:", LABELMIDLEFT, 1820, LABELWIDTH_SM, TEXTMIDLEFT, 1760, TEXTWIDTH_SM, "", True)
    ADD _Accessed      (7, "Accessed:", LABELLEFT, 2120, LABELWIDTH_LG, TEXTLEFT, 2060, TEXTWIDTH_MED, "", EnableIfElectronic)

      If _Translator "(Translated by ~_Translator~.)"
      If _ForeignLanguage "(Translated from ~_ForeignLanguage~ .)"
      If _ForeignLanguage/_Translator "(Translated from ~_ForeignLanguage~ by ~_Translator~.)"

      If _LimitedCirc "(Available from ~_LimitedCirc~)"

      If _Abstract "(Abstract)"

      If _Revised "~_Revised~ edition."

      If _Chapter "~_Chapter~ in"

      If _Editor "(Editor)."
      If _Editor(multiple) "(Editors)."

<f>_Author<n> +AuthorType (_Year). +Chapter<i> _Title.<n> +Abstract +Revised +TranslatedWork _Location:_Publisher +LimitedCirc

If _ForeignTitle
<f>_Author<n> +AuthorType (_Year). +Chapter<i> _ForeignTitle <n>[_Title]. +Abstract +Revised +TranslatedWork _Location:_Publisher +LimitedCirc

LVL 85

Assisted Solution

by:Mike Tomlinson
Mike Tomlinson earned 40 total points
ID: 9783970
Why do you think a String would be too small?

From the VB Help File: "A variable-length string can contain up to approximately 2 billion (2^31) characters."

A string would certainly hold one of your type sections, and probably your entire file. could read the file one line at a time and the lines of text to a collection.  You could start a new collection one a new type section is encountered.  Then you can just pass the collection to your initialise() method.

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.


Author Comment

ID: 9784097

I actually didn't try.
I simply remember having major problems trying to use a large string some time ago.
Perhaps because I was using VBA in Word97.
I am sure it would only let me have 256 characters.


Expert Comment

ID: 9785559

Reference your sample data posted:
1. Is this what the whole file looks like?
2. Is each block seperated by a blank line?
3. If answer to (2) is no then how do you determine the start and end of a block?

If this is the case then I can help...

LVL 85

Expert Comment

by:Mike Tomlinson
ID: 9872515
Have you solved your problem yet?

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question