Solved

data types

Posted on 2003-11-19
7
217 Views
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?

Thanks,
Cassandra.
0
Comment
Question by:calebS
7 Comments
 
LVL 9

Accepted Solution

by:
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.
0
 
LVL 1

Author Comment

by:calebS
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.

type(0).initialise(textBlock1)
type(1).initialise(textBlock2)
...
type(22).initialise(textBlock23)

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"
STYLE_VERSION "1"
SOFTWARE_VERSION "1.0"

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)

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

+LimitedCirc
      If _LimitedCirc "(Available from ~_LimitedCirc~)"

+Abstract
      If _Abstract "(Abstract)"

+Revised
      If _Revised "~_Revised~ edition."

+Chapter
      If _Chapter "~_Chapter~ in"

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

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

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


0
 
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.

Or...you 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.

Idle_Mind
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 1

Author Comment

by:calebS
ID: 9784097
thanks.

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.

Thanks.
0
 
LVL 2

Expert Comment

by:CD-Softy
ID: 9785559
Hi,

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...

CD
0
 
LVL 85

Expert Comment

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

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Suggested Solutions

Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
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…

760 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

Need Help in Real-Time?

Connect with top rated Experts

25 Experts available now in Live!

Get 1:1 Help Now